{"type":"rich","version":"1.0","provider_name":"phorkie","provider_url":"https:\/\/p.cweiske.de\/","title":"tagebuch db","author_name":"Christian Weiske","cache_age":86400,"width":900,"height":900,"html":"<!-- embedding all files of https:\/\/p.cweiske.de\/71 -->\n<link rel=\"stylesheet\" href=\"https:\/\/p.cweiske.de\/css\/embed.css\"\/>\n<div class=\"phork\" id=\"71\">\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.php .de1, .php .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.php  {font-family:monospace;}\n.php .imp {font-weight: bold; color: red;}\n.php li, .php .li1 {color: #DDD;}\n.php .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.php .kw1 {color: #b1b100;}\n.php .kw2 {color: #000000; font-weight: bold;}\n.php .kw3 {color: #990000;}\n.php .kw4 {color: #009900; font-weight: bold;}\n.php .co1 {color: #666666; font-style: italic;}\n.php .co2 {color: #666666; font-style: italic;}\n.php .co3 {color: #0000cc; font-style: italic;}\n.php .co4 {color: #009933; font-style: italic;}\n.php .coMULTI {color: #666666; font-style: italic;}\n.php .es0 {color: #000099; font-weight: bold;}\n.php .es1 {color: #000099; font-weight: bold;}\n.php .es2 {color: #660099; font-weight: bold;}\n.php .es3 {color: #660099; font-weight: bold;}\n.php .es4 {color: #006699; font-weight: bold;}\n.php .es5 {color: #006699; font-weight: bold; font-style: italic;}\n.php .es6 {color: #009933; font-weight: bold;}\n.php .es_h {color: #000099; font-weight: bold;}\n.php .br0 {color: #009900;}\n.php .sy0 {color: #339933;}\n.php .sy1 {color: #000000; font-weight: bold;}\n.php .st0 {color: #0000ff;}\n.php .st_h {color: #0000ff;}\n.php .nu0 {color: #cc66cc;}\n.php .nu8 {color: #208080;}\n.php .nu12 {color: #208080;}\n.php .nu19 {color:#800080;}\n.php .me1 {color: #004000;}\n.php .me2 {color: #004000;}\n.php .re0 {color: #000088;}\n.php span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"php\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59\n60\n61\n62\n63\n64\n65\n66\n67\n68\n69\n70\n71\n72\n73\n74\n75\n76\n77\n78\n79\n80\n81\n82\n83\n84\n85\n86\n87\n88\n89\n90\n91\n92\n93\n94\n95\n96\n97\n98\n99\n100\n101\n102\n103\n104\n105\n106\n107\n108\n109\n110\n111\n112\n113\n114\n115\n116\n117\n118\n119\n120\n121\n122\n123\n124\n125\n126\n127\n128\n129\n130\n131\n132\n133\n134\n135\n136\n137\n138\n139\n140\n141\n142\n143\n144\n145\n146\n147\n148\n149\n150\n151\n152\n153\n154\n155\n156\n157\n158\n159\n160\n161\n162\n163\n164\n165\n166\n167\n168\n169\n170\n171\n172\n173\n174\n175\n176\n177\n178\n179\n180\n181\n182\n183\n184\n185\n186\n187\n188\n189\n190\n191\n192\n193\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"kw2\">&lt;?php<\/span>\n<span class=\"kw2\">class<\/span> Tagebuch_Db\n<span class=\"br0\">&#123;<\/span>\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @var PDO<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"re0\">$db<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; <span class=\"kw2\">protected<\/span> <span class=\"re0\">$config<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> __construct<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">config<\/span> <span class=\"sy0\">=<\/span> Tagebuch_Config<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">loadFiles<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Returns a post object from the given file.<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @param string $file File name without path<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return Tagebuch_Post or boolean false if not found<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getPost<span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$stmt<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'SELECT * FROM posts WHERE file = ?'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$stmt<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$stmt<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetchObject<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Tagebuch_Post'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getPosts<span class=\"br0\">&#40;<\/span><span class=\"re0\">$tag<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$limit<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$tag<\/span> <span class=\"sy0\">===<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$tag<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'%'<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$tag<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'%,'<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$tag<\/span> <span class=\"sy0\">.<\/span> <span class=\"st_h\">',%'<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$stmt<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"st_h\">'SELECT * FROM posts'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' WHERE tags LIKE ?'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' ORDER BY modified DESC'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$limit<\/span> <span class=\"sy0\">!==<\/span> <span class=\"kw4\">null<\/span> ? <span class=\"st_h\">' LIMIT '<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$limit<\/span> <span class=\"sy0\">:<\/span> <span class=\"st_h\">''<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$stmt<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$tag<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"re0\">$stmt<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetchAll<\/span><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">FETCH_CLASS<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'Tagebuch_Post'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Fetches the next and previous posts from the database.<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @param string $file Filename to fetch<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @param string $tag &#160;Tag name that determines the file list<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; - may be null for no tag<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return array Array with prev and next keys, post objects<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* &#160; &#160; &#160; &#160; &#160; &#160; &#160; as value. NULL when empty<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getPrevNext<span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$tag<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$tag<\/span> <span class=\"sy0\">===<\/span> <span class=\"kw4\">null<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$tag<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'%'<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$tag<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'%,'<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$tag<\/span> <span class=\"sy0\">.<\/span> <span class=\"st_h\">',%'<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$qfile<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">quote<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$qtag<\/span> &#160;<span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">quote<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$tag<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <a href=\"http:\/\/www.php.net\/list\"><span class=\"kw3\">list<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$date<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"st_h\">'SELECT modified FROM posts WHERE file LIKE '<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"re0\">$qfile<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' LIMIT 1'<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$qdate<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">quote<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$date<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; &#160; &#160; <span class=\"re0\">$prev<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'SELECT * FROM posts'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' WHERE modified &lt; '<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$qdate<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' AND tags LIKE '<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$qtag<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' ORDER BY modified DESC LIMIT 1'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetchObject<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Tagebuch_Post'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$next<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'SELECT * FROM posts'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' WHERE modified &gt; '<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$qdate<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' AND tags LIKE '<\/span> <span class=\"sy0\">.<\/span> <span class=\"re0\">$qtag<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' ORDER BY modified ASC LIMIT 1'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetchObject<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Tagebuch_Post'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"st_h\">'prev'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$prev<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"st_h\">'next'<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"re0\">$next<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Returns an array of all tags<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">public<\/span> <span class=\"kw2\">function<\/span> getTags<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$stmt<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">query<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'SELECT tags FROM posts'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$tags<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array\"><span class=\"kw3\">array<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">while<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$stmt<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">fetch<\/span><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">FETCH_OBJ<\/span><span class=\"sy0\">,<\/span> PDO<span class=\"sy0\">::<\/span><span class=\"me2\">FETCH_ORI_NEXT<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$rtags<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array_flip\"><span class=\"kw3\">array_flip<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/explode\"><span class=\"kw3\">explode<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">','<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/substr\"><span class=\"kw3\">substr<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$row<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">tags<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">-<\/span><span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$tags<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/array_merge\"><span class=\"kw3\">array_merge<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$tags<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$rtags<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <a href=\"http:\/\/www.php.net\/unset\"><span class=\"kw3\">unset<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$tags<\/span><span class=\"br0\">&#91;<\/span><span class=\"st_h\">''<\/span><span class=\"br0\">&#93;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <a href=\"http:\/\/www.php.net\/array_keys\"><span class=\"kw3\">array_keys<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$tags<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Prepares the table structure<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return void<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">protected<\/span> <span class=\"kw2\">function<\/span> prepare<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> PDO<span class=\"br0\">&#40;<\/span><span class=\"st_h\">'sqlite::memory:'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">setAttribute<\/span><span class=\"br0\">&#40;<\/span>PDO<span class=\"sy0\">::<\/span><span class=\"me2\">ATTR_ERRMODE<\/span><span class=\"sy0\">,<\/span> PDO<span class=\"sy0\">::<\/span><span class=\"me2\">ERRMODE_EXCEPTION<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">exec<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;CREATE TABLE posts(<\/span>\n<span class=\"st0\">title TEXT,<\/span>\n<span class=\"st0\">file TEXT,<\/span>\n<span class=\"st0\">size INTEGER,<\/span>\n<span class=\"st0\">created DATE,<\/span>\n<span class=\"st0\">modified DATE,<\/span>\n<span class=\"st0\">tags TEXT,<\/span>\n<span class=\"st0\">license TEXT<\/span>\n<span class=\"st0\">)&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; \n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Loads raw files into database<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return void<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">protected<\/span> <span class=\"kw2\">function<\/span> loadFiles<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">db<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">prepare<\/span><span class=\"br0\">&#40;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"st_h\">'insert into posts (title,file,size,created,modified,tags,license)'<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"sy0\">.<\/span> <span class=\"st_h\">' VALUES(:title,:file,:size,:created,:modified,:tags,:license)'<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':title'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$title<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':file'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$filename<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':size'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$size<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':created'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$crdate<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':modified'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$mdate<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':tags'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$tags<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">bindParam<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">':license'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$license<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160;\n&#160; &#160; &#160; &#160; <span class=\"kw1\">foreach<\/span> <span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getRawFiles<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">as<\/span> <span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$hp<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">new<\/span> Tagebuch_HtmlPost<span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$crdate<\/span> <span class=\"sy0\">=<\/span> <span class=\"re0\">$hp<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getCreationDate<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$mdate<\/span> &#160;<span class=\"sy0\">=<\/span> <span class=\"re0\">$hp<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getModificationDate<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$tags<\/span> &#160; <span class=\"sy0\">=<\/span> <span class=\"st_h\">','<\/span> <span class=\"sy0\">.<\/span> <a href=\"http:\/\/www.php.net\/implode\"><span class=\"kw3\">implode<\/span><\/a><span class=\"br0\">&#40;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"st_h\">','<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$hp<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getTags<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#41;<\/span> <span class=\"sy0\">.<\/span> <span class=\"st_h\">','<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$title<\/span> &#160; &#160;<span class=\"sy0\">=<\/span> <span class=\"re0\">$hp<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getTitle<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$filename<\/span> <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/basename\"><span class=\"kw3\">basename<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$size<\/span> &#160; &#160; <span class=\"sy0\">=<\/span> <a href=\"http:\/\/www.php.net\/filesize\"><span class=\"kw3\">filesize<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$license<\/span> &#160;<span class=\"sy0\">=<\/span> <span class=\"re0\">$hp<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">getLicense<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"re0\">$query<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">execute<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160;\n&#160;\n&#160;\n&#160; &#160; <span class=\"co4\">\/**<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* Returns an array full of raw filename paths<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*<\/span>\n<span class=\"co4\">&#160; &#160; &#160;* @return array Array of raw file names<\/span>\n<span class=\"co4\">&#160; &#160; &#160;*\/<\/span>\n&#160; &#160; <span class=\"kw2\">protected<\/span> <span class=\"kw2\">function<\/span> getRawFiles<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <a href=\"http:\/\/www.php.net\/glob\"><span class=\"kw3\">glob<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">config<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">raw<\/span> <span class=\"sy0\">.<\/span> <span class=\"st_h\">'*.htm'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span>\n&#160;\n<span class=\"sy1\">?&gt;<\/span><\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/71\/rev-raw\/786113230e2e99fc5d0fceb08e876bd6a8b8c9a5\/Db.php\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/71#Db.php\">Db.php<\/a>\n <\/div>\n<\/div>\n<\/div>\n"}
