1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.
Загрузка

1.1.x [XFR] User Albums [RU] 1.0.0 Beta 7

Альбомы для XenForo

  1. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    А подскажите пожалуйста в какой переменной хранится номер (image_id) текущей картинки в лайтбоксе после нажатия на кнопку "следующая", а то в image.image_id остается id первой картинки, которой вызвали лайтбокс.
    Необходимо это для того что бы сделать подпись под картинкой с кодом вставки в пост, в простом режиме (ссылка вверху справа "показать в сообщении") все нормально меняется.
     
  2. SeM13

    SeM13 Создатель системы

    Регистрация:
    05.01.11
    Сообщения:
    747
    Симпатии:
    258
    Версия XF:
    1.1.3
    Нашелся баг. Когда просматриваешь фотографии в лайтбоксе, и листаешь фотки с помощью стрелочек, то они переключаются нормально. Но если вдруг ты переключишь фотку чуть ниже этой самой стрелочки, то загрузка идет вечная и ничего не прогружает.
     
    Pepelac нравится это.
  3. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Спасибо за наводку :)
    Быстро поправить можно так:
    в файле js/xfru/useralbums/imagebox.js функцию setNavLinks заменить этим
    Код:
    setNavLinks: function(data)
            {
                $('#LbPrev, #LbPrev span').data('href', data.imageNeighbours.prev.url);
                $('#LbImage, #LbNext, #LbNext span').data('href', data.imageNeighbours.next.url);
            },
    В шаблоне? Там же все аяксом подгружается, надо править яваскрипт. Или я что-то не понимаю? Скрин можно того, что вы делаете?
     
    SeM13, resonansER и Kn1ght нравится это.
  4. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    useralb_numbers.png

    соответственно теги прописаны в custom bb manager.
    цифра между тегов должна меняться на номер текущего изображения, но так как это аякс то оно не меняется со сменой картинки.
    + добавлена функция useralbum/$img_id/thumbnail
    для удобного доступа к тумбочкам
     
  5. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Вариант 1 — перенесите нужные вам изменения в шаблон xfr_useralbums_image_content — шаблон отвечает за вывод информации об изображении (автор, симпатии, описание). Этот шаблон подгружается аяксом всегда.

    Вариант 2 — оставить изменения там, где они сейчас, но тогда надо вносить изменения и в яваскрипт, чтобы они проявлялись в нужном месте. Каждый аяксовый запрос возвращает нужную информацию об изображении, так что вам надо только в нужное место вставить код, обновляющий нужные цифры (в функции processLoadedData файла imagebox.js)
     
    Kn1ght нравится это.
  6. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    Спасибо большое, воспользовался первым способом
     
  7. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
  8. Kn1ght

    Kn1ght Местный

    Регистрация:
    16.02.11
    Сообщения:
    180
    Симпатии:
    47
    Версия XF:
    1.2.4
    это вы к чему?
     
  9. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Это я к тому, что никто мне не подсказал, я уже вторые сутки долблюсь, а вопрос вроде бы нубской и и до безобразия простой :( Не могу сделать блок для XenPorta, из-за того, что не могу использовать инфу из альбомов на главной (XenPorta), не понимаю, как вывести туда хотя бы темплейт из форумного сайдбара :(
     
  10. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Ни разу не смотрел XenPorta и желания нет никакого.
    Вообще, что надо чтобы сделать свой блок в портал? Скажите, какую инфу оно требует, а я скажу, возможно ли это.
     
    Mr. Brightside нравится это.
  11. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Я понимаю, но портой пользуется море народу, если поможете, обещаю сбацать толковый модуль в сайдбар :)

    xfr_useralbums_sidebar_latest_albums - "вот это вот" шаблон работает в сайдбаре форума (выводит последние альбомы в блоке), но когда я делаю инклюд этого шаблона на главной портала, шаблон почему-то не отображается (походу "отдает" 0). Как я уже писал, я не силен в архитектуре, но догадываюсь, что проблему можно решить двумя-тремя строками кода (есть какие-то правила, по которым в коде надо указывать, на каких страницах будет работать аддон). В частности надо позволить юзать шаблоны (хуки, параметры) вашего замечательного аддона на страницах XenPorta. А там я уже сделал бы нужный модуль с нужными параметрами и положил бы его тут :)
     
  12. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
  13. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Ну тогда делать по аналогии с этим.
    Метод, отвечающий за выдачу последних альбомов – XfRu_UserAlbums_Model_Albums::getLatestAlbums()
     
  14. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Если вы про создание хука, то пишет, что некорректное имя метода обработчика. А вообще я не понял, что куда сувать.

    Верстать модули, делать возможности опций в админке на XML и html темплейт-синтаксис (foreach и т.д.) могу, но для этого надо куда-то засунуть эти методы. Куда засунуть, чтобы заработало? :)

    Например, вот что есть в модуле LN-Blog для XenPorta:

    HTML:
            <xen:if is="{$LNBlogRecentEntries}">
                <ol>
                    <xen:foreach loop="$LNBlogRecentEntries" value="$recentEntry">
                        <xen:include template="lnblog_sidebar_recent_entry" />
                    </xen:foreach>
                </ol>
            <xen:else />
    Вышеприведенный инклуд от LN-Blog работает на любой странице сайта. Я вставляю этот код к примеру в модуль последних новостей XenPorta - работает. Мне нужна аналогия для альбомов.

    З.Ы. Ничего не поделаешь, что я деревянный, по-другому объяснять не умею :)
     
  15. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Опять же, если исходить из аналогии с блоком блогов.

    В архиве мы имеем следующую структуру:

    structure.png

    В папке XML лежит описание блока, в папке Block лежит пхп файл, отвечающий за данные.

    Повторяюсь, я не смотрел сам аддон портала и не горю желанием. Но исходя из того, что я вижу в блоке блогов, вам небходимо сделать вот что:

    1. PHP файл, отвечающий за данные. Примерно такого содержания:
    PHP:
    <?php
     
    class EWRporta_Block_XfRuUserAlbumsLatest extends XenForo_Model
    {
        public function 
    getModule()
        {
            if (!
    $latestAlbums $this->getModelFromCache('XfRu_UserAlbums_Model_Albums')->getLatestAlbums())
            {
                return 
    'killModule';
            }
           
            return 
    $latestAlbums;
        }
    }
    Сохранить его в папке Block под именем XfRuUserAlbumsLatest.php
    2. XML файл-описание блока
    Код:
    <?xml version="1.0" encoding="utf-8"?>
    <module>
      <module_name>XfRuUserAlbumsLatest</module_name>
      <module_cache>now</module_cache>
      <module_settings></module_settings>
      <module_template><![CDATA[<div class="section">
        <div class="secondaryContent">
            <h3>{xen:phrase xfr_useralbums_sidebar_latest_albums}</h3>
     
            <xen:if is="{$XfRuUserAlbumsLatest}">
                <ol>
                    <xen:foreach loop="$XfRuUserAlbumsLatest" value="$album">
                        <xen:include template="xfr_useralbums_sidebar_latest_album" />
                    </xen:foreach>
                </ol>
            <xen:else />
                {xen:phrase xfr_useralbums_there_are_no_albums_yet}
            </xen:if>
        </div>
    </div>]]></module_template>
    </module>
    Сохранить его в папке XML под именем XfRuUserAlbumsLatest.xml
    По-идее, этого должно хватить.
     
  16. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Пробовал, понял что это не то. ПХП-файл - мусор (работает без него и с переустановкой).
    Думаю что соль в листенере с темплейт-хуками
    Вот Templatehook.php из папки Listener (LNBlog)
    PHP:
    <?php
    /**
    * Allows the creation of the Recent Blog Entries in the sidebar.
    *
    * @author David 'Onimua' Hernandez
    * @link http://xenforo.com/community/threads/ln-blog.12701/
    */
    class LNBlog_Listener_TemplateHook
    {
        public static function 
    templateCreate(&$templateName, array &$paramsXenForo_Template_Abstract $template)
        {
            switch (
    $templateName)
            {
                case 
    'account_alerts_extra':
                    
    $template->preloadTemplate('lnblog_alert_preferences');
                break;
                case 
    'forum_list_sidebar':
                    
    $template->preloadTemplate('lnblog_sidebar_recent_entries');
                break;
                case 
    'member_card_stats':
                    
    $template->preloadTemplate('lnblog_member_card_link');
                break;
                case 
    'member_view_tabs_heading':
                    
    $template->preloadTemplate('lnblog_profile_tab');
                break;
                case 
    'member_view_tabs_content':
                    
    $template->preloadTemplate('lnblog_profile_tab_content');
                break;
            }
        }
        public static function 
    templateHook($name, &$contents, array $paramsXenForo_Template_Abstract $template)
        {
            
    $globalParams $template->getParams();
       
            
    $options XenForo_Application::get('options');
            
    $entryModel XenForo_Model::create('LNBlog_Model_Entry');
            
    ### I'm not sure what was going through my head when I was checking this per hook in Beta 1 and 2.
            
    if ($globalParams['visitor']['permissions']['lnblog']['view'])
            {
                switch (
    $name)
                {
                    case 
    'account_alerts_extra':
                        
    $contents .= $template->create('lnblog_alert_preferences');
                    break;
                    case 
    'account_wrapper_sidebar_settings':
                        
    $contents .= $template->create('lnblog_account_sidebar_link'$globalParams);
                    break;
                    case 
    'forum_list_sidebar':
                        if (
    $options->lnblogGeneralDisplayLocations['forum_sidebar'])
                        {
                            
    $viewParams = array(
                                
    'recentEntries'    => $entryModel->getRecentEntries()
                            );
                            
    $recentEntryTemplate $template->create('lnblog_sidebar_recent_entries'$viewParams);
                            
    $needle '<!-- end block: sidebar_online_users -->';
                            
    $contents str_replace($needle$needle $recentEntryTemplate$contents);
                        }
                    break;
                    case 
    'member_card_stats':
                        if (
    $options->lnblogGeneralDisplayLocations['member_card'])
                        {
                            
    $viewParams = array(
                                
    'blogLink'        => XenForo_Link::buildPublicLink('blog'$globalParams['user']),
                                
    'entryCount'    => $entryModel->getUserEntryCountVisibleByVisitor($globalParams['user']['user_id'])
                            );
                            
    $contents .= $template->create('lnblog_member_card_link'$viewParams);
                        }
                    break;
                    case 
    'member_view_tabs_heading':
                        if (
    $options->lnblogGeneralDisplayLocations['profile_tab'])
                        {
                            
    $contents .= $template->create('lnblog_profile_tab');
                        }
                    break;
                    case 
    'member_view_tabs_content':
                        if (
    $options->lnblogGeneralDisplayLocations['profile_tab'])
                        {
                            
    $blogEntryFetchOptions $entryModel->getPermissionBasedEntryFetchOptions() + array(
                                
    'limit'    => 10,
                                
    'join'    => LNBlog_Model_Entry::FETCH_USER
                            
    );
                            
    $viewParams = array(
                                
    'blogEntries'    => $entryModel->getEntriesByUser($globalParams['user']['user_id'], $blogEntryFetchOptions)
                            );
                            
    $contents .= $template->create('lnblog_profile_tab_content'$viewParams);
                        }
                    break;
                    case 
    'navigation_visitor_tab_links1':
                        
    $contents .= $template->create('lnblog_visitor_tab_link');
                    break;
                }
            }
        }
    }
    Походу это генерит темплейты для определенных страниц форума (портала). Если я прав, надо аналог для альбомов. Ушел колупаться дальше

    Тут есть блок последних изображений, вот бы кто его выложил, понять ба как работает http://xenforo.com/community/attachments/ewrporta_block-latest-images-zip.16699/
     
  17. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Укажите пост, где этот аттач, а не саму ссылку на аттач. По прямой ссылке скачать не получится.
     
  18. resonansER

    resonansER Местный

    Регистрация:
    19.08.11
    Сообщения:
    461
    Симпатии:
    290
    Версия XF:
    1.5.6
    УЖЕ скачал :)

    Код:
    http://forum.starlight-group.com/EWRporta_Block Latest images.zip
    Качайте.
     
  19. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Ясно, там в пхп-е присутствует SQL-запрос, который выдергивает из бд информацию о последних изображениях. Я поступлю так же, возьму у Пепелаца кусок кода, который отвечает за формирование темплейта последних альбомов в сайдбар, и, может быть мы увидим что-нить к утру. Но лучше бы сам темплейт заставить работать в XenPorta :)
     
  20. nixelent

    nixelent Пользователь

    Регистрация:
    30.10.11
    Сообщения:
    7
    Симпатии:
    1
    Приветствую Вас! Столкнулся с таким вопросом.... Когда пользователь создает альбом с чекбоксом "личный альбом" он становится виден только юзернейму и администратору. Как сделать его видимым остальным нужным пользователям? френдам или по паролю....
     

Поделиться этой страницей