Роман Алискин: посты (новые снизу), стр 17

desc

2
0
2
2
г
о
д
О
б
н
о
в
л
е
н
и
е
П
е
р
е
р
о
ж
д
е
н
и
е
Н
о
в
а
я
Ж
и
з
н
ь

Рефакторинг длиною в жизнь не удался. Я очень перестарался и еле остановился, чтобы вывалить коды сайта на сервер. ООП такая штука... с ним постоянно получается "нет пердела совершенству". Кто предыдущего предложения не понял, тот и этого не поймёт.
 
Шо
*
по обновлению?
Если рассказывать о всех изменениях, то... это только трата времени. Всё равно никто не будет вникать во всё, все и вся. Поэтому очень кратко (я в предыдущих своих свежих постах уже не один, и не два раза употребляю слово кратко) опишу грандиозные изменения:
- под картинкой выводится контент в котором она используется - наконец-то появилась возможность добавления картинки в комментарий - добавились некоторые страницы активности и поиска (глобального и в контенте одного пользователя), популярного и случайного контента - на главной выводится свежий контент - некоторые изменения в профиле пользователя (добавлен Случайный контент и Отключить рекламу и еще много чего, но я не хочу детально описывать что конкретно) - появились некоторые менюшки - появилась лишняя кнопка (потому что "нет пердела совершенству")
- я максимально сократил справку и удалил\закрыл некоторые свои посты - если вспомню еще что-то важное - допишу. ---
*
- Что

Н
е
т
п
е
р
д
е
л
а
с
о
в
е
р
ш
е
н
с
т
в
у

Позавчера написал:
class EndPageRndContent {

    private $rnd;
    private $rnd_obj;

    public function __construct() {
        $this->rnd = rand(1, 6);
        switch ($this->rnd) {
            case 1:             //пользователи
                $this->rnd_obj = new RndUsers(4);
                break;
            case 2:             //посты
                $this->rnd_obj = new RndPosts(2);
                break;
            case 3:             //посткоменты
                $this->rnd_obj = new RndPostComs(1);
                break;
            case 4:             //картинки
                $this->rnd_obj = new RndFotos(4);
                break;
            case 5:             //фотокоменты
                $this->rnd_obj = new RndFotoComs(1);
                break;
            case 6:             //фотоалбомы
                $this->rnd_obj = new RndAlbums(4);
                break;
            default:            //ВСЕГДА В КЕЙСАХ ...!!!
                echo 'rnd_err def exit';
                $e = new Err();
                $e->logerr_exit('rnd_err def exit ' . __METHOD__ . ' in ' . __FILE__ . ' on ' . __LINE__);
                break;
        }
    }
}
Вчера переписал:
class RndContentEndPage {

    private $rnd;               //какой нужно выбирать
    private $cou_rnd_obj;       //количество в масссиве -1 (нум с нуля)
    private $selected_rnd_obj;  //выбран из массива
    private $how_show_rnd_cont; //сколько элементов показывать
    private $rnd_obj;
    private $tmp_wsh;
    private $rnd_ar = ['RndUsers', 'RndPosts','RndPostComs','RndFotos','RndFotoComs',
      'RndAlbums','RndComPics'];

    public function __construct() {
        $this->cou_rnd_obj = count($this->rnd_ar) - 1;
        $this->rnd = rand(0, $this->cou_rnd_obj);   //нумерац с 0
        $this->selected_rnd_obj = $this->rnd_ar[$this->rnd];
        $this->how_show_rnd_cont = rand(1, 4);
        $this->rnd_obj = new $this->selected_rnd_obj($this->how_show_rnd_cont);
   }
}
Сегодня еще раз переписываю...
class RndContentEndPage {

    private $rnd;               //какой нужно выбирать
    private $cou_rnd_obj;       //количество в масссиве -1 (нум с нуля)
    private $selected_rnd_obj;  //выбран из массива
    private $how_show_rnd_cont; //сколько элементов показывать
    private $rnd_obj;
    private $tmp_wsh;
    private $rnd_ar = ['RndPostComs', 'RndFotoComs', 'RndPosts', 'RndUsers',
      'RndAlbums', 'RndFotos', 'RndComPics'];

    public function __construct() {
        $this->cou_rnd_obj = count($this->rnd_ar) - 1;
        $this->rnd = rand(0, $this->cou_rnd_obj);   //нумерац с 0
        $this->selected_rnd_obj = $this->rnd_ar[$this->rnd];
        $this->set_how_show_rnd_cont();
        $this->rnd_obj = new $this->selected_rnd_obj($this->how_show_rnd_cont);
    }

    private function set_how_show_rnd_cont() {  //лучше несколько прсостых условий, чем какая-то хрень
        if ($this->rnd < 2) {
            $this->how_show_rnd_cont = 1;
        }
        if ($this->rnd == 2 ) {
            $this->how_show_rnd_cont = 2;
        }
        if ($this->rnd > 2 ) {
            $this->how_show_rnd_cont = 4;
        }
    }
}
Добавил я
$this->set_how_show_rnd_cont(); //в зависимости от того какой случайный контент показывать
этой строчкой устанавливается количество случайного контента для вывода

БЫЛО
$this->how_show_rnd_cont = rand(1, 4); //от 1 до 4 элементов
Если вывод 4 картинок или 4 фотоальбомов смотрится более-менее, то вывод 4 постов или 4 комментов выглядит уже не очень красиво (один коммент может быть на две(!) страницы монитора). Раньше в скобках было указано сколько нужно случайного контента выводить.
          case 1:             //пользователи
                $this->rnd_obj = new RndUsers(4);
                break;
            case 2:             //посты
                $this->rnd_obj = new RndPosts(2);
                break;
            case 3:             //посткоменты
                $this->rnd_obj = new RndPostComs(1);
                break;
            case 4:             //картинки
                $this->rnd_obj = new RndFotos(4);
                break;
            case 5:             //фотокоменты
                $this->rnd_obj = new RndFotoComs(1);
                break;
            case 6:             //фотоалбомы
                $this->rnd_obj = new RndAlbums(4);
                break;
Зачем всё это запердельн... запредельное совершенствование?
Теперь если нужно будет добавить еще какой-то случайный контент, то я вписываю класс

    private $rnd_ar = ['RndPostComs', 'RndFotoComs', 'RndPosts', 'RndUsers',
      'RndAlbums', 'RndFotos', 'RndComPics', 'СлучайныйНовыйКонетен'];

Всё!
Ну и возможно чуток условие изменю в set_how_show_rnd_cont() - ребята, которые в теме, поймут.
И так постоянно со всем кодом.

О
б
р
а
т
н
а
я
с
в
я
з
ь
2
0
2
2
-
0
3
-
1
4

Нафига?
 
 
Кажись чб цветотастную тему я уже сделал, хотя она не совсем черно-белая.

Н
е
в
с
ё
С
В
О
Е
н
е
н
у
ж
н
о
е
и
м
у
с
о
р
н
о
е
я
у
б
р
а
л
и
з
с
а
й
т
а
.

Не всё СВОЕ ненужное и мусорное я убрал из сайта. Позже буду дозакрывать и доудалять.

К
а
к
и
м
б
ы
л
с
а
й
т
?
(
п
о
к
а
ч
т
о
б
е
з
в
и
д
е
о
)

В фотоальбоме есть скриншоты того что было в сети. Позже, возможно, я сниму видео для сравнения того как было и как сейчас.

В
з
а
д
м
е
т
к
и
н
И
п
р
а
г
р
о
м
и
с
т
а

Кажись у меня шото с краткосрочной памятью не так, наверное, профф болезня всех программистов и нИпрагргомистов. Бывает такое: забываю что происходило одну, две, три минуты назад. Я использую программку для записи идей, проблем, задач и всего такого... Можете взглянуть на мои взадметки, жописки, заметки, записки. Но там такое... Я и сам уже не всё помню, и не всё понимаю что тама понаписювано :;). Идею, проблему, ошибку, задачу ЗАПИСАЛ, РЕШИЛ И ЗАБЫЛ, "пошел" далее.

О
ш
и
б
к
и

Сайт обновляется или идет ручная регистрация пользователей. Вдруг желающих будет слишком много, хотя я в этом очень сильно сомневаюсь.
 
Тут белым на... черным по белому всё понятно написано.
 
Есть некоторые неточности, но это же не смертельно. Исправлять такие мелочи я не хочу (и, наверное, уже не буду).
 
А еще, кажись, есть какие-то глюки с картинками. Если чё - сообщайте (можно прям под этим постом).

Н
у
ж
е
н
л
и
н
а
с
т
р
а
н
и
ц
е
к
а
р
т
и
н
к
и
к
о
д
д
л
я
в
с
т
а
в
к
и
к
а
р
т
и
н
к
и
в
п
о
с
т
и
л
и
к
о
м
м
е
н
т
а
р
и
й
?

Вот пост о бб-кодах. Думаю что с мобильных устройств будет неудобно(?) "доставать" ссылку на картинку в фотоальбоме.
Нужен ли на странице картинки код для вставки картинки в пост или комментарий?

У
с
т
а
н
о
в
и
л
в
с
е
м
п
о
л
ь
з
о
в
а
т
е
л
я
м
б
е
л
о
-
ч
е
р
н
у
ю
с
е
р
о
в
а
т
у
ю
т
е
м
у
о
ф
о
р
м
л
е
н
и
я

Установил всем пользователям бело-черную сероватую тему оформления. Сделал это для привлечения внимания к красочным красотам. Не хочу я делать скриншоты с браузерными темами. Приведу тупоСсылки на темы, подходящие к цветовому оформлению. Если у вас шотоТипа Гуглохрома:
классическая стандартная белая тема
или любая другая белая тема
или любая черная тема
Для Fiefox ищите сами... Мне сейчас лень искать и проверять. Может позже опубликую что-то конкретно для ффокса.