1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
    Скрыть объявление
  3. Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
    Скрыть объявление
  4. Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
    Скрыть объявление
  5. Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.
    Скрыть объявление

Проблема с мультиязычностью - тема bender

Тема в разделе "Шаблоны и улучшения", создана пользователем dotof, 30 янв 2014.

  1. dotof

    dotof Новичок

    Проблема никого не беспокоит? Когда у вас 2 языка (ru и en), то при подаче объявления в русском варианте, в админке русское объявление пустое, а заполнение идёт в английском варианте объявления. Наверное не понятно:
    1) у доски два языка - русский и английский
    2) я захожу в русский язык на доске и кликаю подать объявление
    3) объявление подал - всё хорошо
    4) захожу в админку, а там русский вариант объявления - пусто
    5) перехожу в английский вариант объявления - и там моё объявление написано (по-русски как и писал)
    По умолчанию стоит русский.

    Что делать????
    я запарился уже код шерстить - сделал вывод что не срабатывает должным образом pk_c_code в файле oc-includes/osclass/helpers/hLocale.php
    function osc_locale_code() {
    return osc_locale_field("pk_c_code");
    }

    120 строка

    кто как победил?
     
    Последнее редактирование: 30 янв 2014
  2. dotof

    dotof Новичок

    Фуф. Добавил в bender панель ввода объявлений как в модерне. На трёх языках во вкладках. Тока бесит одно но... Как сделать чтоб при публикации первой выскакивала вкладка твоего языка, а не инглиша по-умолчанию.
     
  3. Hett

    Hett Новичок

    Решили как то проблему?
    У меня такая же.
     
  4. dotof

    dotof Новичок

    Последнее редактирование: 15 фев 2015
  5. vlad444

    vlad444 Новичок

    Как удалось решить эту проблему? подскажите пожалуйста ссылка не работает!!!
     
  6. administrator

    administrator Блудный сын. Команда форума

    Сделайте вначале резервную копию файлов, а затем следуйте инструкции:
    Для того чтоб сделать вкладки мультиязычности в теме Bender нужно определиться с количеством языков ( я использую 3 языка: русский, английский и сербский). Итак, заходим в файл oc-includes/osclass/frm/Item.form.class.php
    Находим строку мультиязычности, где-то 409-я. Выделяем текст от этой строки, и до 438-й (выделяем всё что между этих строк вместе с этими строками):
    PHP:
     static public function multilanguage_title_description($locales null$item null) {
     *
     *
     *
     *
     *
     *
     
    self::description_textarea('description'$locale['pk_c_code'], $description);
    Меняем всё, что выделили на следующие строки:
    PHP:
    static public function multilanguage_title_description($locales null$item null) {
     if(
    $locales==null) { $locales osc_get_locales(); }
     if(
    $item==null) { $item osc_item(); }
     
    $num_locales count($locales);
     if(
    $num_locales>1) { echo '<div class="tabber"><input type="radio" name="odin" checked="checked" id="vkl1"/><label for="vkl1">' __('Version in English') . '</label><input type="radio" name="odin" id="vkl2"/><label for="vkl2">' __('Version in Russian') . '</label><input type="radio" name="odin" id="vkl3"/><label for="vkl3">' __('Version in Serbian') . '</label>'; };
     foreach(
    $locales as $locale) {
     if(
    $num_locales>1) { echo '<div class="tabbertab">'; };
     if(
    $num_locales>1) { echo ''; };
     echo 
    '<div class="title">';
     echo 
    '<div><label for="title">' __('Title') . ' *</label></div>';
     
    $title = (isset($item) && isset($item['locale'][$locale['pk_c_code']]) && isset($item['locale'][$locale['pk_c_code']]['s_title'])) ? $item['locale'][$locale['pk_c_code']]['s_title'] : '';
     if( 
    Session::newInstance()->_getForm('title') != "" ) {
     
    $title_ Session::newInstance()->_getForm('title');
     if( 
    $title_[$locale['pk_c_code']] != "" ){
     
    $title $title_[$locale['pk_c_code']];
     }
     }
     
    self::title_input('title'$locale['pk_c_code'], $title);
     echo 
    '</div>';
     echo 
    '<div class="description">';
     echo 
    '<div><label for="description">' __('Description') . ' *</label></div>';
     
    $description = (isset($item) && isset($item['locale'][$locale['pk_c_code']]) && isset($item['locale'][$locale['pk_c_code']]['s_description'])) ? $item['locale'][$locale['pk_c_code']]['s_description'] : '';
     if( 
    Session::newInstance()->_getForm('description') != "" ) {
     
    $description_ Session::newInstance()->_getForm('description');
     if( 
    $description_[$locale['pk_c_code']] != "" ){
     
    $description $description_[$locale['pk_c_code']];
     }
     }
     
    self::description_textarea('description'$locale['pk_c_code'], $description);
    Шаг номер два – это замена кода в файле oc-content/themes/bender/item-post.php
    Находим строчку с ценой – это наш ориентир:
    PHP:
    <?php if( osc_price_enabled_at_items() ) { ?>
    И всё что выше этой строчки удаляем – всю первую часть файла, до самого верха.
    Вместо этого вставляем новую половину файла:
    PHP:
    <?php
     
    /*
     * Osclass – software for creating and publishing online classified
     * advertising platforms
     *
     * Copyright (C) 2013 OSCLASS
     *
     * This program is free software: you can redistribute it and/or
     * modify it under the terms of the GNU Affero General Public License
     * as published by the Free Software Foundation, either version 3 of
     * the License, or (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful, but
     * WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     * GNU Affero General Public License for more details.
     *
     * You should have received a copy of the GNU Affero General Public
     * License along with this program. If not, see <http://www.gnu.org/licenses/>.
     */
     // meta tag robots
     
    osc_add_hook('header','bender_nofollow_construct');
     
    osc_enqueue_script('jquery-validate');
     
    bender_add_body_class('item item-post');
     
    $action 'item_add_post';
     
    $edit false;
     if(
    Params::getParam('action') == 'item_edit'){
     
    $action 'item_edit_post';
     
    $edit true;
     }
     
    ?>
     <style>
     .tabber > div, .tabber > input { display: none; }
     .tabber label { padding: 5px; border: 0px solid #aaa; line-height: 28px; cursor: pointer; position: relative; bottom: 1px; }
     .tabber input[type="radio"]:checked + label { border-bottom: 0px solid #fff; background-color: #F0FDFF; border-radius: 5px; padding-bottom: 4px; }
     .tabber > input:nth-of-type(1):checked ~ div:nth-of-type(1),
     .tabber > input:nth-of-type(2):checked ~ div:nth-of-type(2),
     .tabber > input:nth-of-type(3):checked ~ div:nth-of-type(3) { display: block; padding: 5px; border: 0px solid #aaa; background-color: #F0FDFF; border-radius: 5px; }
     </style>
     <?php osc_current_web_theme_path('header.php') ; ?>
     <?php ItemForm::location_javascript_new(); ?>
     <div class="form-container form-horizontal">
     <div class="resp-wrapper">
     <div class="header">
     <h1 style="font-weight: lighter;"><?php _e('Publish a listing''bender'); ?></h1>
     </div>
     <ul id="error_list"></ul>
     <form name="item" action="<?php echo osc_base_url(true);?>" method="post" enctype="multipart/form-data" id="item-post">
     <fieldset>
     <input type="hidden" name="action" value="<?php echo $action?>" />
     <input type="hidden" name="page" value="item" />
     <?php if($edit){ ?>
     <input type="hidden" name="id" value="<?php echo osc_item_id();?>" />
     <input type="hidden" name="secret" value="<?php echo osc_item_secret();?>" />
     <?php ?>
     <div class="control-group">
     <label class="control-label" for="select_1"><?php _e('Category''bender'); ?></label>
     <div class="controls">
     <?php ItemForm::category_select(nullnull__('Select a category''bender')); ?>
     </div>
     </div>
     <h2 style="font-weight: lighter;"><?php _e('Select the tab of your language''bender'); ?></h2>
     <div>
     <?php ItemForm::multilanguage_title_description(); ?>
     </div>
    Прошу обратить внимание, что тут мы используем CSS для удобного отображения вкладок.
    Код:
     <style>
     .tabber > div, .tabber > input { display: none; }
     .tabber label { padding: 5px; border: 0px solid #aaa; line-height: 28px; cursor: pointer; position: relative; bottom: 1px; }
     .tabber input[type="radio"]:checked + label { border-bottom: 0px solid #fff; background-color: #F0FDFF; border-radius: 5px; padding-bottom: 4px; }
     .tabber > input:nth-of-type(1):checked ~ div:nth-of-type(1),
     .tabber > input:nth-of-type(2):checked ~ div:nth-of-type(2),
     .tabber > input:nth-of-type(3):checked ~ div:nth-of-type(3) { display: block; padding: 5px; border: 0px solid #aaa; background-color: #F0FDFF; border-radius: 5px; }
     </style>
    После этого должно все получиться.
    Обратите внимание на версию 4.* в ней свои решения, скорее всего тут нужно подумать над кодом.
     
    vlad444 нравится это.
  7. administrator

    administrator Блудный сын. Команда форума

    Отпишитесь если работает, закрепим тему вверху.
     
Загрузка...

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