15 Commits

Author SHA1 Message Date
48128e78ab clean 2026-03-24 15:34:04 +01:00
50bf7b13a7 css: better split medias 2025-10-09 23:17:37 +02:00
76687cc725 translate news.php, move it to main page 2025-10-09 23:16:58 +02:00
3098e5c010 css? 2025-10-09 13:31:56 +02:00
7c41c06d16 Merge pull request 'feature/news' (#6) from feature/news into main
Reviewed-on: #6
2025-10-09 13:30:35 +02:00
8b0a27358d minor chages for users.php
* article css
* h1 > Users
2025-10-09 03:10:02 +02:00
a077f2e95f news page 2025-10-09 03:09:49 +02:00
df15387f84 escape xd 2025-10-08 13:44:16 +02:00
5ce36803b8 Merge pull request 'users tab' (#5) from feature/users-tab into main
Reviewed-on: #5
Reviewed-by: v0id1st <v0id1st@tylda.org>
2025-10-08 13:42:29 +02:00
fea7b92687 link 2025-10-08 13:41:25 +02:00
ef777eb779 register 2025-10-08 13:33:14 +02:00
e19a66ff62 users tab 2025-10-08 12:15:37 +02:00
5bff409db4 Merge pull request 'feature/css-hell' (#4) from feature/css-hell into main
Reviewed-on: #4
2025-10-07 01:14:23 +02:00
2c21a866b1 media chaos
* dodane media na desktop (900+)
* dodane media na 480px
* dodane media dla telefonow (max-device-width)
2025-10-03 22:42:17 +02:00
8cfc95535d avoid hardcoding height for flex purposes 2025-10-03 21:23:10 +02:00
7 changed files with 222 additions and 17 deletions

View File

@@ -1,5 +1,6 @@
<html lang="pl"> <html lang="pl">
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="/static/css/main.css"> <link rel="stylesheet" type="text/css" href="/static/css/main.css">
<meta charset="utf-8"> <meta charset="utf-8">
<title>~tylda.org~ polskie tildeverse</title> <title>~tylda.org~ polskie tildeverse</title>
@@ -12,4 +13,5 @@
<a href="/wiki/">wiki</a> <a href="/wiki/">wiki</a>
<a href="/git/">git</a> <a href="/git/">git</a>
<a href="/register.php">dołącz</a> <a href="/register.php">dołącz</a>
<a href="/users.php">użytkownicy</a>
</header> </header>

View File

@@ -1,9 +1,16 @@
<?php <?php
$files = array(); $files = array();
foreach (scandir("/home/") as $file) {
if (in_array($file, array('.', '..'))) continue; foreach (scandir("/home/") as $user) {
$files[$file] = filemtime("/home/".$file); if (in_array($user, array('.', '..'))) continue;
$public_html = "/home/$user/public_html";
// Sprawdź czy katalog public_html istnieje
if (is_dir($public_html)) {
$files[$user] = filemtime($public_html);
}
} }
arsort($files); arsort($files);
@@ -48,14 +55,27 @@ $slogan = $slogans[rand(0, count($slogans) - 1)];
<h2>Ostatnio edytowane strony:</h2> <h2>Ostatnio edytowane strony:</h2>
<p class="user_home" style="margin-bottom: 1rem">$ ls -lt /home/</p> <p class="user_home" style="margin-bottom: 1rem">$ ls -lt /home/</p>
<?php <?php
foreach($recent as $user => $date) { foreach($recent as $user => $date) {
echo "<a class=\"link\" href=\"/~".$user."/\"><p class=\"user_home\"><span>drwxr-xr-x</span><span>".rand(1,9)."</span><span>".$user."</span><span>".$user."</span><span>".rand(1,19)."</span><span>".date("M d H:i", $date)."</span><span>".$user."</span></p></a>"; echo "<a class=\"link\" href=\"/~".$user."/\">
<p class=\"user_home\">
<span>drwxr-xr-x</span>
<span>".rand(1,9)."</span>
<span>".$user."</span>
<span>".$user."</span>
<span>".rand(1,19)."</span>
<span>".date("M d H:i", $date)."</span>
<span>".$user."</span>
</p>
</a>";
} }
?> ?>
</article> </article>
<?php <?php
include 'news.php';
include 'footer.php'; include 'footer.php';
?> ?>

60
news.php Normal file
View File

@@ -0,0 +1,60 @@
<h1>> Niusy </h1>
<article id="content">
<h2> 2025/10/09 </h2>
<p>
<ul>
<li>Założyliśmy instancję <a href="https://cloud.tylda.org">nextcloud</a>. Powoli odzywamy się do środowiska linuxowego i fediverse promując inicjatywę.</li>
<li>Niusy dodane na główną</li>
</ul>
</p>
<h2> 2025/10/08 </h2>
<p>
Nowa strona listująca wszystkich <a href="/users.php">użytkowników</a>.
</p>
<h2> 2025/10/03 </h2>
<p>
Poprawiony interaktywny layout strony. Głównie css @media.
</p>
<h2> 2025/09/30 </h2>
<p>
Formularz rejestracji wymusza podanie klucza SSH.
</p>
<h2> 2025/09/25 </h2>
<p>
<ul>
<li>Podstawowe wsparcie gemini protocol. Używamy serwera satellite</li>
<li>Strona wiki</li>
</ul>
</p>
<h2> 2025/09/20 </h2>
<p>
<ul>
<li>Smoorg dołącza do tyldy jako wolontariusz, developer i admin</li>
<li>Dodany podstawowy formularz rejestracji</li>
</ul>
</p>
<h2> 2025/09/18 </h2>
<p>
v0id1st stworzył podwaliny serwera
<ul>
<li>skrypt dodający użytkowników</li>
<li>konfiguracja irc</li>
<li>podstawowa strona html+php</li>
</ul>
</p>
<h2> 2025/07/22 </h2>
<p>
Początek prac.
</p>
</article>

View File

@@ -22,7 +22,7 @@ Otrzymaliśmy twój formularz rejestracji. Oczekuj na dalsze informacje na swoje
$interests=htmlspecialchars($_POST["interests"]); $interests=htmlspecialchars($_POST["interests"]);
$pubkey=htmlspecialchars($_POST["pubkey"]); $pubkey=htmlspecialchars($_POST["pubkey"]);
$to = 'smoorg@tylda.org'; $to = 'register@tylda.org';
$subject = 'Rejestracja usera ' . "$nick"; $subject = 'Rejestracja usera ' . "$nick";
$message = "Nick:\t\t$nick\n" . $message = "Nick:\t\t$nick\n" .
"Email:\t\t$email\n" . "Email:\t\t$email\n" .
@@ -41,6 +41,7 @@ Otrzymaliśmy twój formularz rejestracji. Oczekuj na dalsze informacje na swoje
} else { } else {
?> ?>
<article>
Poniższy formularz trafi do naszych administratorów, którzy go ocenią. Potraktuj go częściowo jako antyspam. Chcemy sensownych odpowiedzi na poniższe pytania. Posiadanie własnej strony też jest na duży plus. Poniższy formularz trafi do naszych administratorów, którzy go ocenią. Potraktuj go częściowo jako antyspam. Chcemy sensownych odpowiedzi na poniższe pytania. Posiadanie własnej strony też jest na duży plus.
<form action="register.php" method="POST"> <form action="register.php" method="POST">
<div class="form-row"> <div class="form-row">
@@ -78,8 +79,10 @@ Poniższy formularz trafi do naszych administratorów, którzy go ocenią. Potra
<button type="submit">Submit</button> <button type="submit">Submit</button>
</div> </div>
</form> </form>
</article>
<?php <?php
} }
?> ?>

View File

@@ -1,9 +1,3 @@
@media only screen and (max-width: 850px) {
header#menu {
flex-direction: column !important;
}
}
:root { :root {
--main: #dd9a1a; --main: #dd9a1a;
--bg: #111; --bg: #111;
@@ -23,18 +17,24 @@ body {
font-family: "Helvetica", "Arial", sans-serif; font-family: "Helvetica", "Arial", sans-serif;
} }
h1 {
margin-bottom: 1rem;
}
h2, h3, h4, h5, h6 {
margin: 0.5rem 0;
}
div.main-content { div.main-content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 60%;
margin: 0 auto; margin: 0 auto;
padding: 1rem; padding: 1rem;
} }
header#menu { header#menu {
display: flex; display: flex;
flex-direction: row;
height: 3rem;
border-width: 5px; border-width: 5px;
border-color: var(--main); border-color: var(--main);
border-style: double; border-style: double;
@@ -72,9 +72,9 @@ article#content {
border-color: var(--main); border-color: var(--main);
border-style: double; border-style: double;
border-radius: 5px; border-radius: 5px;
margin-top: 2rem; margin: 2rem 0;
padding: 1rem; padding: 1rem;
gap: 8px; gap: .5rem;
padding-block: 2rem; padding-block: 2rem;
} }
@@ -104,7 +104,8 @@ footer#footer > *:not(:last-child)::after {
pre.ascii { pre.ascii {
margin-bottom: 2rem; margin-bottom: 2rem;
font-size: 15px; font-size: 1rem;
overflow: auto;
} }
.user_home { .user_home {
@@ -116,6 +117,7 @@ pre.ascii {
.form-row { .form-row {
display: flex; display: flex;
flex-direction: column;
justify-content: flex-end; justify-content: flex-end;
padding: .5em; padding: .5em;
} }
@@ -151,3 +153,67 @@ ul li {
padding: 0.5rem; padding: 0.5rem;
margin-left: 2rem; margin-left: 2rem;
} }
@media only screen and (min-width: 1200px) {
div.main-content {
width: 60%;
}
}
@media only screen
and (min-width: 576px)
and (max-width: 768px) {
header#menu {
flex-direction: column;
}
.form-row {
flex-direction: row;
}
pre.ascii {
font-size: 0.8rem;
}
}
@media only screen
and (min-width: 768px)
and (max-width: 992px) {
header#menu {
flex-direction: column;
}
.form-row {
flex-direction: row;
}
}
@media only screen
and (min-width: 992px)
and (max-width: 1200px) {
}
@media only screen
and (min-width: 1200px)
and (max-width: 1400px) {
header#menu {
flex-direction: column;
}
.form-row {
flex-direction: row;
}
}
@media only screen and (max-width: 576px) {
header#menu {
flex-direction: column;
margin-bottom: 2rem;
}
article#content {
font-size: 1em;
border: none;
border-color: none;
border-style: none;
border-radius: 0;
padding: 0rem;
}
pre.ascii {
font-size: 0.5rem;
}
}

28
stats.php Normal file
View File

@@ -0,0 +1,28 @@
<?php
include 'header.php';
ini_set("display_errors", "On");
error_reporting(E_ALL);
$users = array();
foreach (scandir("/home/") as $file) {
if (in_array($file, array('.', '..'))) continue;
array_push($users, $file);
}
?>
<h1>> Statystyki</h1>
<article id="content">
Statystyki z tego serwera tilde
<ul>
<li>Liczba użytkowników: <?=count($users);?></li>
<li>Liczba wiadomości na IRC: TODO </li>
<li>Liczba wiadomości na IRC dziś: TODO</li>
<li>Ostatni server load: <?=shell_exec("/usr/bin/top -n 1 | grep Load | cut -d' ' -f3,4,5");?></li>
<li>Wolny RAM: <?=shell_exec("/usr/bin/free -h | grep Mem | awk '{print \$NF}'");?>
</ul>
</article>
<?php
include 'footer.php';
?>

26
users.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
include 'header.php';
?>
<h1>> Users </h1>
<article id="content">
Lista użytkowników i linki do ich blogów
<ul>
<?php
$host=htmlspecialchars($_SERVER['SERVER_NAME']);
//$host="";
foreach (scandir("/home/") as $file) {
if (in_array($file, array('.', '..'))) continue;
echo "<li><a href=\"/~$file\">~$file</a></li>";
}
?>
</ul>
</article>
<?php
include 'footer.php';
?>