Flat |
Отправлено: 5 октября 2018 — 08:07 • Тема: Размышлизмы о движке • Форум: О жизни |
Ответов: 64 Просмотров: 0
|
1Bot
Действительно многого. Может это и не нужно на определённом этапе, но будем иметь в виду на будущее.. |
Flat |
Отправлено: 5 октября 2018 — 08:05 • Тема: Обрезаются ссылки • Форум: Решение проблем |
Ответов: 2 Просмотров: 0
|
Попробуйте в файле post.php найти строчки:
CODE:/* Отправка всем подписавшимся на тему */
if (count($emailers) !== 0 && $PostAdded === TRUE) {
$email = sprintf($fm->LANG['NewPostNotify'],
$forumname,
$fm->exbb['boardname'],
$fm->user['name'],
date("d-m-Y H:i:s",$fm->_Nowtime),
$fm->input['inpost'],
$fm->exbb['boardurl'].'/topic.php?forum='.$forum_id.'&topic='.$topic_id.'&postid='.$last_key,
$fm->exbb['boardurl'],
$forum_id,
$topic_id);
$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$emailers,$fm->LANG['NotifyNewPost'].$forumname,$email);
unset($emailers); }
затем в этих строчках найти строку:
CODE:$fm->exbb['boardurl'].'/topic.php?forum='.$forum_id.'&topic='.$topic_id.'&postid='.$last_key
и замените её на:
CODE:$fm->exbb['boardurl'].'/topic.php?forum='.$forum_id.'&topic='.$topic_id.'&postid='.$last_key.'#'.$last_key
Сам я не тестировал, но должно сработать. |
Flat |
Отправлено: 1 октября 2018 — 13:36 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение |
Ответов: 61 Просмотров: 0
|
Guyver пишет:А с регой пользователей и неполучением ими письма для подтверждения - это тоже эта же самая проблема?
Кстати да - это тоже не работает. |
Flat |
Отправлено: 1 октября 2018 — 09:20 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение |
Ответов: 61 Просмотров: 0
|
Gmail.com и yandex работают через smtp по протоколу ssl, а форум написан с учётом того, что протокол ssl не используется. Протокол ssl использует совсем другие порты, чем просто smtp. Время у же ушло вперёд. В сети нагуглил класс для работы по ssl. Попробую как-нибудь вставить его в существующий код. |
Flat |
Отправлено: 1 октября 2018 — 08:53 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение |
Ответов: 61 Просмотров: 0
|
NordWest пишет:Посмотрите вот тут.
Возможно это как раз и есть решение вашей проблемы?
Изменил код по вашей ссылке. Теперь на mail.ru стало доходить, а на yandex через раз. На gmail.com по прежнему не доходит. Чудеса.. |
Flat |
Отправлено: 30 сентября 2018 — 13:51 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение |
Ответов: 61 Просмотров: 0
|
Так, сегодня установил новый форум. Залогинился под админом и под юзером из двух разных браузеров. Протестировал отправку на три почтовых ящика: yandex.ru, mail.ru, gmail.com.
На yandex почта доходит. На mail.ru не доходит и на gmail.com не доходит. Пока тестировал на неизменённом движке. Вот такие пироги.. И дело тут скорее всего не в движке, а в политике некоторых компаний.. |
Flat |
Отправлено: 29 сентября 2018 — 13:35 • Тема: Размышлизмы о движке • Форум: О жизни |
Ответов: 64 Просмотров: 0
|
То есть в движке должна существовать некая имунная система самовосстановления и самолечению, некий контролёр здоровья.. |
Flat |
Отправлено: 29 сентября 2018 — 12:06 • Тема: Размышлизмы о движке • Форум: О жизни |
Ответов: 64 Просмотров: 0
|
1Bot пишет:Система вполне может сама о себе знать.
Под системой я подразумевал движок форума, а не php фреймворк. То есть движок должен сам о себе всё знать, и если что - сам себя чинить! |
Flat |
Отправлено: 29 сентября 2018 — 12:03 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение |
Ответов: 61 Просмотров: 0
|
Parapsixolog пишет:Кстати Flat , вы сами проверяли, письма доходят у вас, или нет?
хотел проверить на хостинге скопировав туда папку с форумом, но filezilla что-то не качает файлы: 6 файлов закачивает, а потом тормозит, выходит из лимита сервера. Буду переустанавливать. Что-то видимо случилось когда откатывал систему. Потом сообщу как всё происходит в реальных полевых условиях на чистом rc1. |
Flat |
Отправлено: 28 сентября 2018 — 04:17 • Тема: Размышлизмы о движке • Форум: О жизни |
Ответов: 64 Просмотров: 0
|
Также интересен подход, который исповедует новая парадигма дата-ориентированного программирования, то есть ориентированного на данные, которые первичны в её понимании. http://gamesfromwithin.com/data-oriented-design
Данные это знание о том что существует в мире, а не просто сами данные. В движке нам нужно знать не только о том, что существует информация о пользователе, но и о том, что существуют сами функции движка. Нужен некий реестр всех функций в системе, то бишь знание о их существовании.. Тогда возможно менять их только через этот реестр. Нужен реестр модулей системы, чтобы их добавлять, подменять или удалять.. Всё группируется вокруг данных, данные это - всё. Например функция вывода главной страницы обращается к реестру блоков главной страницы и выводит их в соответствии этому списку. В список можно добавить блок, можно его удалить, можно перетасовать блоки в реестре и выводить их в другом порядке. Таким образом можно легко, к примеру, добавить рекламный блок или что-либо другое.. Таким образом система становится "умнее" так как "знает" про себя всё необходимое.. |
Flat |
Отправлено: 28 сентября 2018 — 03:04 • Тема: Размышлизмы о движке • Форум: О жизни |
Ответов: 64 Просмотров: 0
|
1Bot пишет:но для других областей чрезмерно усложнена.
Чем сложнее задача, тем легче её решить в автоматном стиле.
1Bot пишет:Например как выделить состояния форума при отправке поста пользователем или его редактировании/просмотре и т.д.?
По предыдущим состояниям действий пользователя. Есть же сессии, хотя можно и без них. Можно даже вести историю действий пользователя.
1Bot пишет:Т.е. для форума это очень притянуто.
В некоторых моментах не обойтись. Например в режиме регистрации пользователя необходимо отслеживать его ввод для того, чтобы при ошибке ввода какого-то поля, отправлять пользователю новую форму с уже введёнными им правильными полями, чтобы пользователю не нужно было повторно вводить правильно-заполненные поля. Кстати, в данном движке это отсутствует. Это легко сделать в том же структурном стиле? Проще применить автомат, который позволяет отследить все состояния регистрации, в том числе откуда юзер пришёл на страницу регистрации. Также и по другим формам ввода.
1Bot пишет:К понятию класса приходишь постепенно, если много пишешь на процедурном языке.
В программировании постоянно твердят, что глобальные переменные зло, во всяком случае когда их слишком много. Функции жёстко на них завязаны, поэтому они не расширяемы, не могут использоваться другими компонентами системы. А от этого система начинает распухать, жиреть.. В классе то же самое: там есть свои глобальные переменные, и функции-методы, которые на них жёстко завязаны.. Просто теперь этих клеток стало очень много, - целая тюрьма.. Данные и функции-обработчики это разные звери. Данные статичны, методы динамичны. Мы взяли и поместили их в одну клетку-класс, и нам кажется, что мы достигли этим инкапсуляции. Однако инкапсуляция тем больше, чем больше других компонентов можно вставить в уже существующий класс. По моему об этом писал Скотт Мейерс в статье "Как функции, не являющиеся методами, улучшают инкапсуляцию". То есть практика показывает, что мы многое потеряли.. А тут ещё наследование.. "Проблема с ОО-языками заключается в том, что они тянут за собой всё своё окружение. Вы хотели всего лишь банан, но в результате получаете гориллу, держащую этот банан, и все джунгли в придачу." Это не я сказал, Джо Армстронг создатель языка Erlang.
Я раньше увлекался таким языком программирования как Fort. Почитывал Лео Броуди. так вот он считал ооп сырой идеей и больше склонялся к компонентной модели. Программа делится на маленькие компоненты, каждый из которых выполняет свою работу. Более крупные компоненты пользуются услугами более мелких. Так растёт дерево программы: от корней к кроне, от низа до верха. Принцип взаимосотрудничества компонентов. А в ООП каждый класс воюет с другим классом, как буд-то они какие-то враги друг другу. Но они же представляют из себя одну и туже программу! Это единый организм, каждый орган которого выполняет свою функцию, и все вместе образуют слаженную систему. А в ООП система состоит из отдельных организмов, враждующих с друг другом и общающихся с друг другом посредством "сообщений".. Один обьект посылает сообщение другому с просьбой: вымой-ка посуду, дружище, а другой в этот момент занят: я читаю газету, отстань от меня, попозже как-нибудь вымою.. Это вот такие сейчас программы. Там теперь не отдают чёткие приказы, что делать, а теперь любезно просят сторонний обьект соблаговолить отложить свои дела и заняться этим..
Parapsixolog пишет:Прочитал Flat вашу статью, и полностью вас поддерживаю
Ну, эту статью не я писал, просто привёл ссылку на отличное видение проблемы.
Parapsixolog пишет:Вот например мозила феервокс на днях сожрала у меня 7 гигов оперативки!
Так практически во всех браузерах. Программисты не заморачиваясь просто запускают на каждую вкладку по отдельному экземпляру браузера, который работает в своём процессе-потоке, отсюда разбухание. Это в корне неверно, но так делают для собственного удобства, быстроты программирования. Страдает потребитель.. |
Flat |
Отправлено: 28 сентября 2018 — 02:14 • Тема: Отправить письмо администратору сайта • Форум: Обсуждение |
Ответов: 61 Просмотров: 0
|
Parapsixolog пишет: я сейчас ещё раз сделал правки, и покрутил настройки в гостях мода группа. И вроде бы заработало это дополнение!
Очень за вас рад!
Parapsixolog пишет:На мой взгляд весьма нужное дополнение к любому сайту.
Да, нужное. Я кстати так и оставил это у себя, пусть будет.
Parapsixolog пишет:Стандартная кнопка не пойдёт.
Естественно. Вот тут есть из чего выбрать: https://yandex.ru/images/search?...2&source=wiz
Можно, конечно, свой дизайн сделать в какой-нибудь программе-редакторе графики, например в paint Net, но это требует усилий и времени. |
Flat |
Отправлено: 27 сентября 2018 — 10:46 • Тема: Размышлизмы о движке • Форум: О жизни |
Ответов: 64 Просмотров: 0
|
1Bot пишет:Используем объектно-ориентированное программирование, а именно полиморфизм как механизм преодоления архитектурных границ.
Ну, архитектурные границы можно преодолеть и простым пространством имён, или соглашениями. ООП вводит много ненужных ограничений.
1Bot пишет:Используем функциональное программирование для наложения ограничений на местоположение данных и порядок доступа к ним.
Концепция функционального программирования ещё довольно далека от реальной жизни. "Всё есть функция" - не правильный постулат.
1Bot пишет:Используем структурное программирование как алгоритмическую основу для наших модулей.
Это уже ближе к реальности. Однако и оно имеет свои ограничения. Приходится постоянно изобретать новые костыли чтобы влезть в прокрустово ложе "структурности".
1Bot пишет:Структурное программирование накладывает ограничение на прямую передачу управления.
Объектно-ориентированное программирование накладывает ограничение на косвенную передачу управления.
Функциональное программирование накладывает ограничение на присваивание.
Вы слышали об автоматном программировании? Про разработки профессора, доктора технических наук, Анатолия Шалыто - https://ru.wikipedia.org/wiki/Ша...атолий_Абрамович? Он преподаёт компьютерные технологии на кафедре в ИТМО. Я читал его книгу "Автоматное программирование", а также много чего на его сайте. Также слушал его лекцию на ю-тьюбе. На мой взгляд за этим будущее. Некоторые вещи я пытаюсь делать применяя эту методологию.
1Bot пишет:Поддержка полиморфизма дает абсолютный контроль над всеми зависимостями в исходном коде.
Полиморфизм может быть и без ООП. в php нет указателей на функции, как в си или с++, но возможно сделать нечто подобное.
1Bot пишет:Это позволяет создать архитектуру со сменными модулями (плагинами), в которой модули верхнего уровня не зависят от модулей нижнего уровня.
Согласен. Это то, что я и хочу видеть в новом движке. |
|