TiA

Рейтинг
116
Регистрация
12.06.2009
Jaf4:
Вы или не все рассказываете, или что-то не так делаете. 100%..

Проблема у Belfis действительно была с неправильно указанным владельцем папки с сайтом. Фактически решение свелось к определению имени пользователя и группы, от имени которой работал PHP-скрипт. Правильные данные удалось получить с помощью небольшого кода:


$userInfo = posix_getpwuid(posix_getuid());
$user = $userInfo['name'];

$groupInfo = posix_getgrgid(posix_getgid());
$group = $groupInfo = $groupInfo['name'];

echo 'User: ' . $user;
echo 'Group: ' . $group;
Belfis:
Куда дальше копать, или что делаю не верно?

Внимательно прочитайте два моих предыдущих сообщения.

Belfis:
Пытаюсь изменить владельца на Root результат на выходе не меняется.

У вас веб-сервер ведь не под рутом работает. Быстро узнать имя пользователя можно например так

atteizzt:
Подскажите, вот в шаблоне на главной написано "Архивы" _inpokemongo.ru , скажите, в каком файле это изменить ? В админке нет такой возможности.

Заголовок указывается в файле loop-meta.php, строка:


$chuchadon_archive_title = get_the_archive_title();
Belfis:
После перемещения сайта на VPS, Wordpress требует доступ к фтп практически для каждого действия в админке.

Как исправить данную проблему?

Это нормальное поведение WordPress, если владелец у папки с сайтом отличается от пользователя, под которым работает PHP. Грубо говоря, вам нужно сменить владельца папки с сайтом на www-data, например.

Smirnof, у вас ошибка в заголовке From. Смените e-mail, с которого отправляется сообщение, на таковой с адресом сайта, на котором размещена форма. Грубо говоря, если у вас форма размещена на сайте site.ru, то в заголовке From нужно указать e-mail noreply@site.ru.

djdiplomat:
Как быть?

Укажите для тега input стиль:


display: block;
box-sizing: border-box;
width: 100%;
padding: 5px;
mendel:
Объясняю в чем лажа с "запрет комментариев".

Любое изменение структуры проекта при вашем подходе выливается в огромную лажу. Требуется ведь банальная вещь: отключение возможности комментировать запись. В вашей системе для этого придется переделывать вывод аватарок для комментариев и обрабатывать ситуацию, когда они могут быть отключены. Если эту простую задачу усложнить и добавить возможность запрета комментирования для отдельных групп пользователей, то переделывать придется еще больше.

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

В Yii для решения этой простой задачи достаточно просто добавить в модель комментария магический метод getAvatar, который будет просто подгружать аватарку нужного пользователя из соответствующей модели. В итоге вывод аватарки сведется к $comment->avatar. Отключение комментариев в этом случае делается элементарно: для модели записи добавляется метод getCommentsState, который берет на себя все проверки. Если он возвращает true, то подключается модель с комментариями и выводятся комментарии.

Таким образом за поведение комментариев отвечает только класс с комментариями, за вывод комментариев к записи - только класс с записями. Если потребуется каким-то образом изменить вывод аватарки к комментариям, например, то вам достаточно поменять всего лишь один метод в модели комментария.

В итоге поддерживать и дорабатывать проект на Yii или все том же WordPress на порядок проще, чем ваш велосипед.

mendel:
Не нужно обрабатывать те исключения которые невозможны, или те которые за тебя уже обработали. А некоторые исключения обрабатывать не нужно

Вы не задумывались, зачем программисты тратят кучу времени, покрывают код тестами, вводят дополнительные проверки и ловят исключения, если:

mendel:
они не могут произойти.

?

В общем, все тут и так понятно, обсуждение смело можно заканчивать.

mendel, похоже, вы так и не поняли в чем же основная проблема вашего кода. Чтобы он работал без ошибок, должно совпасть сразу несколько обстоятельств:

1) У комментария должно быть свойство post. Если его нет - получаете полноценную ошибку, которая связана с обращением к несуществующему свойству. В результате скрипт падает, на выходе белый экран и ваш телефон разрывается от звонков клиентов;

2) Если у объекта post нет свойства category или оно возвращает что-то отличное от объекта со свойством owner, то вы также получите ошибку;

3) Если у объекта owner нет свойства avatar, то вы также получите ошибку.

И все эти ситуации нужно отслеживать только для того, чтобы одна несчастная строка в вашем коде нормально работала. Если в процессе разработки вы что-то из списка выше упустите, то этот будет уже не "другая задача", а ваша проблема, которую вам же придется решать. А теперь представьте, если таких строк будет несколько сотен. Представьте также, что в один прекрасный день клиент поставит вам задачу добавить тривиальную возможность указания для записи нескольких равнозначных категорий, а также возможность запретить комментирование для отдельной записи...

mendel:
Начал писать на новом ему языке и фреймворке. Написал код на 100 строк. Потом начал изучать движок и подобавлял кучу проверок исключительных ситуаций. Потом разобрался хорошо и убрал все это нафиг вернувшись к тем же 100 строк с которых начинал.

Проверять данные и обрабатывать исключения нужно. Без этого нормальная разработка невозможна. На этом предлагаю закончить обсуждение.

Всего: 800