P

Protomoto

+70
Репутация
1023
Рейтинг
0
Реклама Реклама
0
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
От себя могу сказать, что для правильной интеграции такого механизма в CMS необходима значительная переработка компонента Пользователи - сейчас в работе компонента используется три "правила" обращения к данным пользователя:
1. Когда первым в строке запроса идет логин пользователя (собственно, профиль http://instantcms.ru/users/nikitka)
2. Когда первым в строке запроса идет ID пользователя (http://instantcms.ru/users/1/messages.html)
3. Когда первым в строке идет операция или раздел (http://instantcms.ru/users/rating/)

таким образом, проблематично однозначно определять принадлежность запроса к компоненту Пользователи - приходится накладывать ограничения, что описаны в конце статьи.
Насколько я понимаю, Instant был изначально спроектирован, с ориентацией на статьи/материалы, теперь же идет декларация социальности движка. Поэтому, следует что-то делать:
1. Либо переделывать компонент пользователей
2. Либо включать статьи/материалы в рядовые компоненты, а не "если ничего из вышеописанного - значит это статья". Таким правом наделять обработку запросов компонентом Пользователи
0
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
Да, уважаемые коллеги, писал на для себя, писал ответ на вопрос КАК, показал куда копать, но код не тестировал на 100%.
Посему, если будут баги - пишите, будем исправлять

На текущий момент обновлена статья: теперь фото, файлы, записи стены, аватары загружаются нормально
Остается пока не решенной проблема скачивания загруженных файлов
0
Protomoto Protomoto Субдомен имени пользователя (user.instantcms.ru) 13 лет назад
ну конечно можно. Принцип, я думаю, понятен, но дописывать каждому по желанию я, пожалуй, не буду
0
0
Protomoto Protomoto Субдомен имени пользователя (user.instantcms.ru) 13 лет назад
Сергей, а Вы проверяли?
так в том-то и дело, что изменяется нормально после перехода
0
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
http://instantcms.ru/blogs/modifikaci-fiksy-instanta/subdomen-imeni-polzovatelja-user-instantcms-ru.html

так перенаправлять в профиль
в блог - нужно немножко доработать
переделать запрос на получение названия блога и изменить соответственно перенаправление
+1
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
есть такое решение, сейчас опубликую
0
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
а у меня нормально пересылает сайт http://instantcms.ru/users/nikitka -> http://instantcms.ru/nikitka
Давай в частном порядке, через сообщения. Линк сайта, код url_rewrite.php
+1
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
Изменил код, смотри в тексте
0
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
а есть пользователь игра?... сейчас подправлю код
0
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад

как в анекдоте

admin: предупреждение за мат

для заворачивания можно дописать в url_rewrie.php
$rules[] = array(
'source' => '/^users\/(.+)$/i',
'target' => '/{1}',
'action' => 'redirect-301'
);

НО будет проблема с вложенными страницами (users/1/messages.html) - нужно еще с регекспом поколдовать

+2
Protomoto Protomoto Прямое имя пользователя (без /users/) 13 лет назад
работает и старый адрес тоже, т.е. поисковики разницу не заметят
0
Protomoto Protomoto Закрыть /users и подобные страницы 13 лет назад
короче, поскольку коменты редактировать нельзя - смотрим и пишем здесь http://instantcms.ru/blogs/modifikaci-fiksy-instanta/prjamoe-imja-polzovatelja-bez-users.html
0
Protomoto Protomoto Закрыть /users и подобные страницы 13 лет назад
ВНИМАНИЕ! В КОДЕ УКАЗАН companies вместо users
Код PHP:
$inDB = cmsDatabase::getInstance();
$q="SELECT id from cms_users WHERE login like '".mysql_real_escape_string($component)."'";
$result = $inDB->query($q) ;
if ($result){
	 $this->uri='users/'.$component;
	return 'users';
}	
else{	
           //если компонент не существует, считаем что это content
            $this->uri = 'content/'.$this->uri;
            $this->is_content = true;
            return 'content';
}
0
Protomoto Protomoto Закрыть /users и подобные страницы 13 лет назад
открываем /core/cms.php

находим обработку компонента по умолчанию (строка 1565)
Код PHP:
//если компонент не существует, считаем что это content
            $this->uri = 'content/'.$this->uri;
            $this->is_content = true;
            return 'content';
заменяем его на это
Код PHP:
$inDB = cmsDatabase::getInstance();
$q="SELECT id from cms_users WHERE login like '".mysql_real_escape_string($component)."'";
$result = $inDB->query($q) ;
if ($result){
	 $this->uri='companies/'.$component;
	return 'companies';
}	
else{	
           //если компонент не существует, считаем что это content
            $this->uri = 'content/'.$this->uri;
            $this->is_content = true;
            return 'content';
}
Внимание! Во избежание конфликта логинов пользователей с названиями компонентов, необходимо в списке запрещенных логинов пользователей (Компоненты-Регистрация вкладка Форма) дополнить список запрещенных имен названиями компонентов системы:
arhive
autoawards
banners
blogs
board
catalog
clubs
comments
content
faq
forms
forum
photos
price
registration
rssfeed
search
statistics
users
0
Protomoto Protomoto Карусель топ-товаров 13 лет назад
сделано. Качайте версию 0.2
0
Protomoto Protomoto Карусель топ-товаров 13 лет назад
densvi, проверьте, перенесли ли вы файлы из подпапки /templates/_default_/ в свой текущий шаблон? Только что попробовал - нормально ставится
+1
Protomoto Protomoto Программа для заполнения контентом статей, не используя браузер 13 лет назад
А если не секрет, сколько денег за такое затребовали на фрилансе?
0
Protomoto Protomoto Карусель топ-товаров 13 лет назад
ставили точно на 1.8? ссылку сайта дайте - гляну
0
Protomoto Protomoto Карусель топ-товаров 13 лет назад
Такую задачу можно решить переносом "залежавшихся" товаров в папку "распродажа" и выставлением в настройках карусели вывода только из этой папки
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.