1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Редактируем sidebar

Discussion in 'Изменения кода - Code Changes' started by Аким, Jun 24, 2012.

  1. Аким Thread starter User


    Offline
    Message Count:
    17
    Likes Received:
    7
    My version of Oxwall:
    1.4.0
    Решил я из Sidebar сделать полноценное меню. На данный момент Sidebar выполняет функцию добавления фотографии, видео, группы, блога и т.п. Задача: сделать универсально меню пользователя (не путать с горизонтальным меню сайта), которое будет направлять пользователя на личные фотографии, группы, блоги и т п., а также - редактировать уже созданный контент или добавлять новый.
    В шаблоне, в файле general.html, мы видим код {component class="BASE_CMP_Sidebar"}, который отвечает за выведение Сайдбара. Сам же Сайдбар находится немного глубже - в файле add_new_content.html, полный путь которого - ../ow_system_plugins/base/views/components/add_new_content.html. Однако и в этом файле мы видим скудный код, который направляет нас еще глубже. Сами ссылки Сайдбара находятся в разных плагинах (ow_plugins) в файле init.php. Но не будем туда лезть. Остановимся на add_new_content.html, куда я предлагаю добавлять новые ссылки.
    Но тут я столкнулся с проблемой. Обычные ссылки прописать не проблема, например, такие, как ссылка на друзей:
    <a class="ow_add_content" href="http://мой_сайт/friends">Друзья</a>
    или на добавление фотографии:
    <a class="ow_add_content" href="http://мой_сайт/photo/upload/index">Добавитьфото</a>.
    Проблема прописать ссылки, в которых фигурирует уникальный ID или USERNAME.
    Например, ссылку на собственные фотографии, где фигурирует USERNAME, я прописал так:
    <a class="ow_add_content" href="{url_for_route for="photo_user_albums:[user=>`$username`]"}">Моифото</a>.
    Должно получится так: http://мой_сайт/photo/useralbums/admin, где admin - USERNAME. Но на выходе я получаю http://мой_сайт/photo/useralbums/, без admin, то есть не читается [user=>`$username`]. В php я дополнительно ничего не прописывал, хотя подозреваю, что надо, раз не читается переменная USERNAME.
    В общем, просьба разработчикам и всем знающим - помогите решить проблему со "сложными" ссылками.

    Возможно вы спросите меня, почему я не хочу использовать "быстрые ссылки" или "пользовательский текст". Все потому, что Сайдбар заточен лучшим образом под организацию меню:
    1. Он появляется на всех страницах, что идеально подходит для меню.
    2. Он не отображается, если пользователь не совершил вход в систему, а вместо Сайдбара показывается панель авторизации.
    3. "Быстрые ссылки" или "пользовательский текст" не выводятся в Сайдбар, что решило бы многие проблемы.
  2. Аким Thread starter User


    Offline
    Message Count:
    17
    Likes Received:
    7
    My version of Oxwall:
    1.4.0
    На скриншоте можно посмотреть пример реализованного мной пользовательского меню. Знак "+" означает "добавить", знак "карандаш" означает редактировать, переход по названию - собственные фотографии, группы, блоги и т.п. (уже созданные).
    Теперь осталось разобраться с так называемыми "сложными" ссылками, где используется переменная USERNAME.

    Attached Files:

  3. Аким Thread starter User


    Offline
    Message Count:
    17
    Likes Received:
    7
    My version of Oxwall:
    1.4.0
    В php прописываю (в файле add_new_content.php):

    PHP:
    OW::getRouter()->urlForRoute('photo_user_albums', array('user' => $username));
     
    $albumUrl OW::getRouter()->urlForRoute('photo_user_album', array(
    'user' => BOL_UserService::getInstance()->getUserName($userId),
    'album' => $album->id
    )); 
    Все равно ссылка <a class="ow_add_content" href="{url_for_route for="photo_user_albums:[user=>`$username`]"}">Мои фото</a> в файле add_new_content.html не работает. Что делаю не так?
  4. Аким Thread starter User


    Offline
    Message Count:
    17
    Likes Received:
    7
    My version of Oxwall:
    1.4.0
    Резюмирую:

    в файл add_new_content.html я добавляю код: <a class="ow_add_content" href="{url_for_route for="photo_user_albums:[user=>`$username`]"}">Мои фото</a>, чтобы получить ссылку http://site.net/photo/useralbums/ADMIN, где ADMIN - уникальная переменная для каждого пользователя (ник пользователя). Но код читается частично, в реальности я получаю: http://site.net/photo/useralbums/, без ADMIN. В php (add_new_content.php) я попробовал прописать:
    PHP:
    OW::getRouter()->urlForRoute('photo_user_albums', array('user' => $username));
    $albumUrl OW::getRouter()->urlForRoute('photo_user_album', array(
    'user' => BOL_UserService::getInstance()->getUserName($userId),
    'album' => $album->id
    )); 
    но это не решило проблему.

    Кто знает, как реализовать ссылки с переменной USERNAME в html? Какой код нужно добавить в php и куда именно? Может мне лучше выйти на разработчиков и задать им этот вопрос?
  5. Prado Challenge Everything


    Offline
    • Admin
    Message Count:
    3,191
    Likes Received:
    786
    My version of phpFox:
    3.0.0
    Я уже отправил тему разработчику.
    Аким likes this.
  6. Аким Thread starter User


    Offline
    Message Count:
    17
    Likes Received:
    7
    My version of Oxwall:
    1.4.0
    Проблема решена! Большое спасибо Егору Булгакову - одному из разработчиков Oxwall.
    Переменная $username не передавалась в шаблон.
    Чтобы решить проблему в контроллере необходимо вставить следующий код:
    $this->assign('username', BOL_UserService::getInstance()->getUserName(OW::getUser()->getId()));
    путь (куда вставить): ow_system_plugins/base/views/components/sidebar.php

    Во вложении инструкция реализации пользовательского меню и файлы, которые нужно заменить.
    Надеюсь, что кому-то еще пригодятся мои наработки.

    Attached Files:

    andymyth, Johanisce and Prado like this.
  7. Prado Challenge Everything


    Offline
    • Admin
    Message Count:
    3,191
    Likes Received:
    786
    My version of phpFox:
    3.0.0
    А вы можете добавить их в русский блог Oxwall?
    --- добавлено: Jul 4, 2012 10:40 PM ---
    Получилась хорошая тема.
  8. Magaz Novice member


    Offline
    Message Count:
    4
    Likes Received:
    0
    My version of Oxwall:
    1.4.0
    Отличное решение для сайдбара, Аким! Кстати, интересует возможность исключения сайдбара из добавленной через iframe страницы..т.е страница меню открывается прямо на сайте в виде блока iframe, всё бы хорошо, только сайдбар закрывает часть инфы на этой странице (расположен поверх инфы)..можно ли это исправить для конкретной страницы? Спасибо!
  9. Аким Thread starter User


    Offline
    Message Count:
    17
    Likes Received:
    7
    My version of Oxwall:
    1.4.0
    Хочу уточнить. Меню передается через iframe вместе с сайдбаром, и сайдбар закрывает меню в самом фрейме? Или во фрейме только меню, а сайдбар находится над фреймом?
  10. Magaz Novice member


    Offline
    Message Count:
    4
    Likes Received:
    0
    My version of Oxwall:
    1.4.0
    Для большей наглядности добавил снимок здесь http://quick-markup.com/p/4ffc74ef768ba Сайдбар висит почти посредине страницы, закрывая часть меню и инфы фрейма

Share This Page

All rights reserved SocEngine.ru ©