Пример кода модуля опроса Sitecore

Я установил и настроил модуль опроса, чтобы он работал нормально. Веб-сайт, над которым я работаю, будет иметь экземпляр опроса на странице либо в виде элемента левой, либо правой панели. Опросы будут настроены в отдельной папке. На элементе страницы будет поле с несколькими списками, которое будет указывать на папку «Опросы», и пользователь может выбрать любой опрос, который он выберет. Папка также будет содержать различные подмакеты, которые можно выбрать для отображения на рельсе. У меня есть некоторый пользовательский код, который будет смотреть на вышеупомянутое поле мультисписка и показывать эти элементы рельса.

Я не знаю, как отобразить опрос программно. Я не нашел примеров кода, а также не знаю, где установить подмакет. Должен ли я установить его в самом шаблоне опроса, а затем использовать код для его отображения? Как я могу добиться этого в коде? Любые примеры кода будут полезны.


person Gabbar    schedule 09.12.2011    source источник
comment
Очень типично :). Я ответил и уже знал, что не получу ни одного согласия на этот вопрос.   -  person Younes    schedule 12.12.2011
comment
Красавчик, теперь все работает?   -  person Younes    schedule 20.12.2011
comment
Вы только отвечаете за них баллами?   -  person Gabbar    schedule 29.06.2013


Ответы (2)


Надеясь, что на этот раз вы примете ответ, я написал для вас следующее (на основе модуля OMS Poll:

Прочтите поле вашего товара:

 Sitecore.Data.Fields.ReferenceField selectedPoll = (Sitecore.Data.Fields.ReferenceField)Sitecore.Context.Item.Fields["Poll"];

Получить элемент опроса:

 if (selectedPoll.TargetItem != null)
            {
                Item pollItem = selectedPoll.TargetItem;

                if (pollItem != null)
                { 

Проверьте, открыт или закрыт опрос, и поместите:

 Sitecore.Data.Fields.CheckboxField pollClosed = (Sitecore.Data.Fields.CheckboxField)pollItem.Fields["Closed"];

                    if (pollClosed.Checked == false)
                    {
                        // Set the header of the snippetBlock
                        ltPollHeader.Text = pollItem.Name;

                        PollVotingSublayout pollSublayout = (PollVotingSublayout)LoadControl("/sitecore modules/Shell/Poll Module/Controls/PollVotingSublayout.ascx");
                        pollSublayout.Attributes.Add("sc_parameters", "PollPath=" + pollItem.Paths.FullPath);
                        pollSublayout.CurrentPoll = (PollItem)pollItem;
                        this.pollRegion.Controls.Add(pollSublayout);

                        phPollSnippet.Visible = true;

                        int blockPos = 0;

                        if (snippetField != null)
                        {
                            if (snippetField.GetItems().Any())
                            {
                                blockPos = 1;
                            }
                        }

                        string cssClass = String.Empty;

                        if (blockPos == 0)
                        {
                            cssClass = "snippetColHomeFirst";
                        }

                        this.SetClass("snippetColHome", cssClass);
                    }   

Надеюсь, вы сможете что-то придумать, используя эти фрагменты. Удачи!

person Younes    schedule 09.12.2011
comment
Итак, я запустил опрос, но мои цифры не обновляются. Я проверил, чтобы увидеть ошибки в firebug, и я не вижу ошибок в сообщениях. Любые идеи? - person Gabbar; 13.12.2011
comment
В диспетчере пользователей нет учетной записи для опроса. Возможно, у вас есть подробности о том, какие разрешения и роли должны быть у этой учетной записи? - person Gabbar; 13.12.2011
comment
В домене sitecore должна быть учетная запись пользователя с именем poll. Эта учетная запись обычно используется для внутреннего опроса. В комментарии к этой учетной записи указано: Пожалуйста, не удаляйте эту учетную запись. - person Younes; 13.12.2011

В домене sitecore должна быть учетная запись пользователя с именем «опрос». Эта учетная запись обычно используется для внутреннего опроса. В комментарии к этому аккаунту указано: «Пожалуйста, не удаляйте этот аккаунт». учетная запись должна иметь роль минимального редактора страниц Sitecore. Я не знаю учетных данных пользователя опроса, но вы можете обнаружить это, используя рефлектор или открыв файлы cs, которые вы можете получить, загрузив исходный код.

person Younes    schedule 13.12.2011