Контакты в профилях (см. UPD РЕШЕНО)
Многие пользователи при указании своих контактов — ссылка на ЖЖ, ВКонтакте и т.д. к сожалению указывают полную ссылку на свою страницу, а это, соответственно приводит к ошибке в данных о пользователе. Т.е. вместо нормальной ссылки
Пытался думать в сторону регулярных выражений, но умения не хватает. Может подскажите, что можно предпринять для предотвращения этих косяков при заполнении профиля и/или при выводе инфы?
UPD: Ту в личку меня любезно проконсультировали по регуляркам и подсказал способ хака. Увы, при этом мы лезем в движок, но лично я уже давно в него залез и на обновления особо не рассчитываю. Проверю решение, отпишусь позже.
Решение (проверено работает):
Один из способов решения предложил AlikMis :
1. Открываем файл \classes\modules\user\entity\Field.entity.class.php
2. Находим
Сразу после этого вставляем
Переведу на русский. Таким образом мы в функцию, возвращающую, значение поля профиля пользователя добавляем php-функцию str_replace(), которая проверяет адрес ВК и если надо, то меняет её. К сожалению, в базе при этом всё равно неправильный адрес, но подобную же функцию можно добавить в функцию записи пользователя. Ещё одним минусом является то, что теперь следует помнить об этих изменениях при обновлении движка (Лично у меня таких хаков накопилось уже порядочно).
http://vk.com/IDпользователяв его профиле возникают дикие
http://vk.com/http://vk.com/ID.
Пытался думать в сторону регулярных выражений, но умения не хватает. Может подскажите, что можно предпринять для предотвращения этих косяков при заполнении профиля и/или при выводе инфы?
UPD: Ту в личку меня любезно проконсультировали по регуляркам и подсказал способ хака. Увы, при этом мы лезем в движок, но лично я уже давно в него залез и на обновления особо не рассчитываю. Проверю решение, отпишусь позже.
Решение (проверено работает):
Один из способов решения предложил AlikMis :
1. Открываем файл \classes\modules\user\entity\Field.entity.class.php
2. Находим
/** * Грязный хак сайта в профиле ( * @todo Сделать валидацию полей в профиле */
Сразу после этого вставляем
$sReturn=str_replace('http://vk.com/http://','http://',$sReturn);
Переведу на русский. Таким образом мы в функцию, возвращающую, значение поля профиля пользователя добавляем php-функцию str_replace(), которая проверяет адрес ВК и если надо, то меняет её. К сожалению, в базе при этом всё равно неправильный адрес, но подобную же функцию можно добавить в функцию записи пользователя. Ещё одним минусом является то, что теперь следует помнить об этих изменениях при обновлении движка (Лично у меня таких хаков накопилось уже порядочно).
13 комментариев
находим
и расширяем «Грязный хак» следующей строкой (для тех кто с контакта уточню — вставляем после строк, указанных выше)
предлагаю