Добрый день, решил поделиться, может кому понадобится, я добавил в админку в редакторе категорий форму для добавления описания в категорию и Title.
выглядит это так (рисунок 1).
НЕ забывайте сохранять копии файлов, а лучше всего что есть)
1. В бд создаем в oc_t_category_description новые столбцы как на рисунке 2
2. В файле Category.form.class.php (oc-includes/osclass/frm) эту функцию полностью static public function multilanguage_name_description заменить на код ниже:
и добавляем в месте где хотите вывести описание код:
<p><?php echo nl2br(meta_opisanie()); ?></p> - стили сами подправите.
Пример вывода, рисунок 4
Дискрипшен у меня так выводиться:
<?php if( meta_description() != '' ) { ?>
<meta name="description" content="<?php echo osc_esc_html(meta_description()); ?>" />
<?php } ?>
рисунок 5
Добавляем функцию: в файл functions.php
Понимаю что в нем есть лишнее, кто захочет почистит сам).
Код для вывода своего title написал по теме ниже
выглядит это так (рисунок 1).

НЕ забывайте сохранять копии файлов, а лучше всего что есть)
1. В бд создаем в oc_t_category_description новые столбцы как на рисунке 2

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

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

Добавляем функцию: в файл 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 написал по теме ниже
Последнее редактирование: