Для какой цели нужна дружба на сайте? В принципе, если горит, можно и компонентом голосования обойтись. Проголосовал - друг, не проголосовал - не друг.
Самим писать тоже не очень дешево выйдет, если это заказная разработка (особенно при том, что Стандарт дает другой доп.функционал). Но как знаете. Будут вопросы, задавайте.
Можно, например, разделы инфоблока принять за вопросы, элементы в разделах будут вариантами ответов, числовое свойство у элемента - кол-во голосов.Причем разделы-вопросы будут на втором уровне, а разделы первого уровня будут группами опросов. Ну и самое главное - компоненты, конечно же... - список групп опросов, - список вопросов в группе, - вопрос с вариантами ответов (он же отображает результаты ответа)
и да, куки использовать.
P.S. это всего лишь ответ на конкретный вопрос. Возможно, стоит также подумать о переходе на Стандарт, взвесив все за и против.
в папке /bitrix/components/ создать папку custom в папке custom создать папку mycomponent в ней создать файл component.php (содержимое - тот код, который я привел, плюс там добавить код получения валюты; все полезное, что пригодится при выводе на странице, нужно записать в массив $arResult) рядом с component.php создать папку templates в ней создать .default.php (не template.php, торопился) содержимое .default.php
на картинке показал, где его создать (напр., UF_FORM_READ назвать его, тип строка, множественное).
А дальше CUser::GetList(), считать свойство UF_FORM_READ (смотрите комменты в документации к этому методу, как свойство UF вытаскивать). Если для текущей формы времени нет, значит форму открываем впервые: показываем форму и добавляем в свойство UF_FORM_READ текущее время строкой "form_15, 1326970385" (метод CUser::Update())
Антон Столярчук пишет: Сомневаюсь что школьники 4-8 класс будут чистить куки. К тому же можно сделать проверкуна их очистку. Крайне не стабильно работают эт как? в чём проявляется?
Уверяю, они и не такое умеют, эти новые поколения...
так у вас все работает? только нужно время хранить? так cookies чем не устраивают?
куки могут стереть пользователи (или зайти с другого браузера); тогда можно использовать кеш (кеш может стереть контентщик); тогда хранить в множественном свойстве пользователя (ID_ФОРМЫ => ВРЕМЯ_НАЧАЛА_ЗАПОЛНЕНИЯ), свойство пользователя может затереть админ