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

Поделюсь, Title и описание в категорию из админки.

Тема в разделе "Общие вопросы по Osclass, Yclas", создана пользователем LipGrad, 17 авг 2016.

  1. LipGrad

    LipGrad Известный пользователь

    Добрый день, решил поделиться, может кому понадобится, я добавил в админку в редакторе категорий форму для добавления описания в категорию и Title.
    выглядит это так (рисунок 1). 001.jpg

    НЕ забывайте сохранять копии файлов, а лучше всего что есть)

    1. В бд создаем в oc_t_category_description новые столбцы как на рисунке 2 002.jpg

    2. В файле Category.form.class.php (oc-includes/osclass/frm) эту функцию полностью static public function multilanguage_name_description заменить на код ниже:
    PHP:
    static public function multilanguage_name_description($locales, $category = null)
    {
    $tabs = array();
    $content = array();
    foreach($locales as $locale) {
    $value = (isset($category['locale'][$locale['pk_c_code']])) ? $category['locale'][$locale['pk_c_code']]['s_name'] : "";
    $name = $locale['pk_c_code'] . '#s_name';
    $nameTextarea = $locale['pk_c_code'] . '#s_description';
    $nameOpisanie = $locale['pk_c_code'] . '#s_opisanie';
    $nameTitle = $locale['pk_c_code'] . '#s_title';
    $valueTextarea = (isset($category['locale'][$locale['pk_c_code']])) ? $category['locale'][$locale['pk_c_code']]['s_description'] : "";
    $valueOpisanie = (isset($category['locale'][$locale['pk_c_code']])) ? $category['locale'][$locale['pk_c_code']]['s_opisanie'] : "";
    $valueTitle = (isset($category['locale'][$locale['pk_c_code']])) ? $category['locale'][$locale['pk_c_code']]['s_title'] : "";
    $contentTemp = '<div id="'.$category['pk_i_id'].'-'.$locale['pk_c_code'].'" class="category-details-form">';
    $contentTemp .= '<div class="FormElement"><label>' . __('Name') . '</label><input id="' . $name .'" type="text" name="' . $name .'" value="' . osc_esc_html(htmlentities($value, ENT_COMPAT, "UTF-8")) . '"/></div>';
    // описание (Title) категории
    $contentTemp .= '<div class="FormElement"><label>' . __('Title категории, не более 70 символов.') . ' <b><span id="blocktitle"></span></b></label>';
    $contentTemp .= '<textarea id="' . $nameTitle . '" name="' . $nameTitle . '" rows="1">' . $valueTitle . '</textarea>';
     
    // описание (Description) категории
    $contentTemp .= '<div class="FormElement"><label>' . __('Description категории, не более 140 символов.') . ' <b><span id="block"></span></b></label>';
    $contentTemp .= '<textarea id="' . $nameTextarea . '" name="' . $nameTextarea . '" rows="2">' . $valueTextarea . '</textarea>';
    //текст категории
    ?>
    <script type="text/javascript">
    $(function() {
    $("textarea[id='ru_RU#s_opisanie']").keyup(function count(){
    number = $("textarea[id='ru_RU#s_opisanie']").val().length;
    $("#count").html("Количество введенных символов: "+number);
    });
    });
    </script>
    <script type="text/javascript">
    $(function() {
    $("textarea[id='ru_RU#s_description']").keyup(function countRemainingChars(){
    maxchars = 140;
    number = $("textarea[id='ru_RU#s_description']").val().length;
    if(number <= maxchars){
    $("#block").html(maxchars-number + " символов осталось");
    }
    if(number == maxchars) {
    $("ru_RU#s_description").attr({ maxlength: maxchars});
    }
    });
    });
    </script>
    <script type="text/javascript">
    $(function() {
    $("textarea[id='ru_RU#s_title']").keyup(function countRemainingChars(){
    maxchars = 70;
    number = $("textarea[id='ru_RU#s_title']").val().length;
    if(number <= maxchars){
    $("#blocktitle").html(maxchars-number + " символов осталось");
    }
    if(number == maxchars) {
    $("ru_RU#s_title").attr({ maxlength: maxchars});
    }
    });
    });
    </script>
    <?php
    $contentTemp 
    .= '<div class="FormElement"><label>' __('Description') . ' <b><span id="count"></span></b></label>';
    $contentTemp .= '<textarea id="' $nameOpisanie '" name="' $nameOpisanie '" rows="20">' $valueOpisanie '</textarea>';
    $contentTemp .= '</div></div></div>';
    $tabs[] = '<li><a href="#'.$category['pk_i_id'].'-'.$locale['pk_c_code'].'">' $locale['s_name'] . '</a></li>';
    $content[] = $contentTemp;
    }
    echo 
    '<div class="ui-osc-tabs osc-tab">';
    echo 
    '<ul>'.join('',$tabs).'</ul>';
    echo 
    join('',$content);
    echo 
    '</div>';
    }
    }
    и добавляем в месте где хотите вывести описание код:
    <p><?php echo nl2br(meta_opisanie()); ?></p> - стили сами подправите.
    Пример вывода, рисунок 4 0004.jpg

    Дискрипшен у меня так выводиться:
    <?php if( meta_description() != '' ) { ?>
    <meta name="description" content="<?php echo osc_esc_html(meta_description()); ?>" />
    <?php } ?>
    рисунок 5 0005.jpg


    Добавляем функцию: в файл functions.php
    Понимаю что в нем есть лишнее, кто захочет почистит сам).
    PHP:
    function meta_opisanie( ) {
        
    $text '';
        
    // home page
        
    if( osc_is_home_page() ) {
            
    $text osc_page_opisanie();
        }
        
    // static page
        
    if( osc_is_static_page() ) {
            
    $text osc_highlight(osc_static_page_text(), 2000'''');
        }
        
    // search
        
    if( osc_is_search_page() ) {
     
        
    $category osc_search_category_id();
        
    $category = ((count($category) == 1) ? $category[0] : '');
        
    $category Category::newInstance()->findByPrimaryKey($category);
        if(
    $category['s_opisanie']!=''){
        
    $text $category['s_opisanie'];
        }
     
     
        }
     
     
        
    // listing
        
    if( osc_is_ad_page() ) {
       
                
    $text osc_item_city() . ' - ' osc_item_category() . ', ' osc_highlight(osc_item_opisanie(), 120);
        }
     
        return (
    osc_apply_filter('meta_opisanie_filter'$text));
    }
     
    // Свой title
    function meta_titleMy( ) {
    $text '';
    // home page
    if( osc_is_home_page() ) {
    $text osc_page_opisanie();
    }
    // static page
    if( osc_is_static_page() ) {
    $text osc_highlight(osc_static_page_text(), 2000'''');
    }
    // search
    if( osc_is_search_page() ) {
     
    $category osc_search_category_id();
    $category = ((count($category) == 1) ? $category[0] : '');
    $category Category::newInstance()->findByPrimaryKey($category);
    if(
    $category['s_title']!=''){
    $text $category['s_title'];
    }
     
     
    }
     
     
    // listing
    if( osc_is_ad_page() ) {
     
    $text osc_item_city() . ' - ' osc_item_category() . ', ' osc_highlight(osc_item_titleMy(), 120);
    }
    return (
    osc_apply_filter('meta_titleMy_filter'$text));
    }
    Код для вывода своего title написал по теме ниже
     
    Последнее редактирование: 18 авг 2016
    cmpl, Sibir, Mike87 и 2 другим нравится это.
  2. LipGrad

    LipGrad Известный пользователь

    И в head.php (создал отдельный head_search.php, копию основного, только title код заменил. И естественно в файле search.php изменил с head.php, на head_search.php). Поставил следующий код, заменил стандартный код для вывода title.
    Код ниже выводит стандартный title, но если вы к категории через админку вбили свой title, то будет ваш на данной категории.

    PHP:
    <?php if(osc_esc_html(meta_titleMy())) { ?>
    <title><?php echo osc_esc_html(meta_titleMy()); ?></title>
    <meta name="title" content="<?php echo osc_esc_html(meta_titleMy()); ?>" />
    <?php } else { ?>
    <title><?php echo osc_esc_html(meta_title()); ?></title>
    <meta name="title" content="<?php echo osc_esc_html(meta_title()); ?>" />
    <?php ?>
    Не знаю на сколько доступно описал, у меня все работает, вроде ничего сложного нет.
     
    Последнее редактирование: 18 авг 2016
    cmpl и Mike87 нравится это.
Загрузка...

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