Форма для ввода данных в каталог

2381
Добрый день!
Моя первая запись, и мой первый публичный мод для инстанта.
Предисловие.
Как известно, данные в универсальный каталог может внести только администраторы. А у меня каталог организаций, и нужно любому зарегистрированному пользователю дать доступ к добавлению.

Итак, данный мод (модулем его не назовешь, так как модулем инстанта он не является) представляет собой файл для инклуда. Пример можно посмотреть здесь http://kamenka-city.ru/content/0/read37.html
Мод писался для версии 1.5.1, на 1.5.2 тоже работает.
Инструкция.
1. Качаем данный файл http://kamenka-city.ru/temp/additem.rar.
2. Распаковываем, полученный файл additem.php добавляем в папку /includes/myphp/
3. Если необходимо, изменяем настройки скрипта (в начале файла)
4. Создаем статью, в ней выбираем "внешний файл", название файла будет additem.
5. в .htaccess найти все строки, начинающиеся на
Код PHP:
RewriteRule ^content
и 
RewriteRule ^view-
и в конце каждой строки дописать
Код PHP:
&%{QUERY_STRING}
(без пробела)

6. Проверяем работу, заходим в нашу статью (до этого не забываем создать рубрики в каталоге)
7. Если всё в порядке, то открываем в текстовом редакторе файл /components/catalog/frontend.php
ищем там строку
Код PHP:
if ($do == 'tag') 
(примерно 334) и ДО НЕЕ добавляем:
Код PHP:
echo "<a href=\"/content/0/read37.html\">Добавить организацию в каталог</a>
";
Внимание!!! Вместо 37 вводим id вашей статьи, которую вы создали в пункте 4.
Всё.

Данный мод еще только сырой, поэтому прежде чем впускать его к пользователям, проверьте его работоспособность. По мере свободного времени буду обновлять этот мод.

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

UPDATE1.
1. Добавилась возможность выбора раздела для выбора рубрик (удобно, если на сайте несколько универсальных каталогов)
2. Показываются не только данные из определенного раздела, но еще и только те рубрики, у которых активирован пункт "опубликовать"
3. Появилась возможность добавлять данные гостям (будьте осторожнее, так как никакой защиты от спамеров в настоящий момент в скрипте нет!)
Для установки новой версии просто скачайте по старой ссылке.
Правильный .Запомнить пароль.
Комментарии (27)
Антон 5 сентября 2009 в 17:14 0
модуль конечно хороший, но как мне посмотреть на него не регистрируясь на твоем сайте
0 5 сентября 2009 в 18:02 0
А что, это так трудно сделать?
Или за то, что я тратил время на написание хоть и маленького кусочка кода, но тратил, тебе жалко ввести 5 слов и открыть свой ящик, чтобы челкнуть на кнопку подтверждения???

Не хочешь смотреть на моем сайте, качай на свой, устанавливай и смотри, а ссылку необязательно сразу ставить на сайт (то бишь пункт 5).
Антон 5 сентября 2009 в 19:16 +2
Не понял. К чему так грубо? Жалко - не жалко.. Скачать модуль не проблема. Но я вообще пару скринов имел ввиду.
0 5 сентября 2009 в 21:45 0
Код PHP:
А у меня каталог организаций, и нужно любому пользователю дать доступ к добавлению.
Любому, а чтобы посмотреть нужно зарегистрироваться?
Мне тож лом региться.
0 7 сентября 2009 в 09:03 0
Так и нужно было спросить скрины. :)
скрин1, скрин2
Антон 9 сентября 2009 в 09:06 0
Спасибо тебе добрый человек =)
0 7 сентября 2009 в 15:36 0
Ухты, прикольно!
almond 7 сентября 2009 в 16:15 0
Спасибо. После указанной правки .htaccess таки заработало!
0 7 сентября 2009 в 17:35 +1
Эта комбинация позволяет использовать свои переменные для скриптов, поэтому она в любом случае пригодится :)
0 8 сентября 2009 в 09:51 0
хорошее начало! спасибо !!!
RoN 14 сентября 2009 в 13:32 0
Версия 1.5.2 добавление происходит, но при просмотре записей в админке пустые поля, с чем может быть связано?
.htaccess редактировал.
0 14 сентября 2009 в 15:27 0
Не могу сказать, ибо версию 1.5.2 не ставил. На досуге попробуй установить тестовую версию и попробовать.
0 15 сентября 2009 в 03:21 0
В версии 1.5.2 работает без проблем. Попробуй обновить файл, может ты вводишь данные неправильные?
almond 15 сентября 2009 в 06:08 0
Вот теперь действительно работает! Спасибо!
lezginka.ru 23 сентября 2009 в 12:49 0
adamsmith, а как "биржа труда" можно использовать ?
0 23 сентября 2009 в 14:37 0
Теоретически можно, так как все поля для ввода берутся из настроек самого каталога, просто нужно будет немного изменить форму.
Annushka 15 ноября 2009 в 18:59 0
adamsmith, помогите мне пожалуйста. Все сделала как вы написали, но при нажатии "Добавить в каталог" отображается чистый лист... С чем это может быть связано??? sad
Annushka 16 ноября 2009 в 00:37 0
Вопрос снимаю, разобралась  dance
но... Помогите мне пожалуйста, чтобы пользователь цену на загружаемый товар ставил. Плиз, оч надо!!! буду очень очень признательна!!! scratch
Annushka 16 ноября 2009 в 00:53 0
и еще вопрос: а удалять как пользователи смогут???
0 16 ноября 2009 в 10:01 0
Смысл этого мода в другом, поэтому удаление и добавление цены в нем не рассчитано. Посмотрите исходный код мода, и по аналогии можно сделать и остальное. Чтобы удалять товары, их нужно сначала привязать к пользователю, добавившему товар, чего сейчас как мне кажется нет, то есть придется изменять базу данных.
Annushka 16 ноября 2009 в 16:22 0
понятно. С ценами впринципе можно сделать просто текстовое поле.
А вот с привязкой к пользователю оч тяжело разобраться scratch
agas 20 ноября 2009 в 13:24 0
Да,очень нужная форма.Спасибо adamsmith за потраченое время на создание мода. Теперь проблемма стоит в другом. Как привязать пользователя, который добавил организацию в каталог для редактирования и удаления своего контента (примерно так как в доске объявлений).Такая функция резко увеличивает интерес к сайту у пользователей и снимает лишний гемор с админа.
В принципе суть проблеммы я понимаю,но сам написать или изменить код не могу так как нет никаких навыков в этом. Поэтому готов немного профинансировать труд того кто возьмётся за эту задачу. Я думаю что со мной согласятся многие владельцы сайтов.
Для моего понимания. Реально вообще это и Цена вопроса?
0 21 ноября 2009 в 11:26 0
Вполне реально. Попробую сделать на выходных
0 21 ноября 2009 в 20:01 0
Чтобы привязать пользователя к его записям
Делаем следующее:
1. Заходим в phpmyadmin в вашу базу с instantcms, делаем следующий запрос:
ALTER TABLE `cms_uc_items` ADD `user_id` INT(11) NOT NULL DEFAULT &#8217;1&#8217; AFTER `title`
Теперь ко всем существующим записям присваивается пользователь администратор (id = 1).
2. Заменяем файл additem.php на файл из архива http://kamenka-city.ru/temp/additem2.rar
Теперь в базе при добавлении записи также есть переменная user_id, а которой содержится id пользователя, добавившего запись.

Насчет "редактирования" и "удаления" нужно или переписывать кучу кода, чтобы интегрировать это в уже созданный профиль пользователей, или делать также отдельный скрипт как и для добавления. Если будет время, попробую и это посмотреть, но для моего сайта в этом нет необходимости, поэтому и делать-то особо не хочется.
0 21 ноября 2009 в 20:04 0
вот правильный запрос, забыл в теги спрятать.
Код PHP:
ALTER TABLE `cms_uc_items` ADD `user_id` INT(11) NOT NULL DEFAULT '1' AFTER `title`
0 21 ноября 2009 в 20:05 0
вместо &#8217; одинарная кавычка, а вообще можно и без них, тогда будет вот так:
Код PHP:
ALTER TABLE `cms_uc_items` ADD `user_id` INT(11) NOT NULL DEFAULT 1 AFTER `title`
Олег с клещами 6 января 2010 в 14:08 0
Понятно, что в 1.5.3 это уже есть, однако удаление и редактирование - большая потребность!
Вопрос к adamsmith: ты продолжаешь работу в этом направлении?