- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Адреса формируются следующим образом
/brands/гамма/
/brands/royal%20czech%20porcelain/
/brands/rainbow/
CMS Bitrix
Однословники на англ хорошо, но пробелы не заменяются на дефис и русские слова без транслита.
Помогите пожалуйста, что делать?
В обработке адресов следующее
Условие #^/brands/([\s\S]+)/#
ПРавило brand=$1
В файле /brands/index.php
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Бренды");
?>
<? if(empty($_REQUEST['brand'])): ?>
<?
$arBrands = array();
$res = CIBlockPropertyEnum::GetList(array("SORT"=>"ASC", "VALUE"=>"ASC"), array('PROPERTY_ID' => 81));
while($arValues = $res->GetNext()){
$arBrands[] = $arValues;
}
?>
<? if(!empty($arBrands)): ?>
<?
$count = count($arBrands);
$inCol = round($count/4);
$i = 1;
?>
<div class="g-menu b-brands_list">
<ul>
<? foreach($arBrands as $brand): ?>
<li>
<a href="/brands/<?=strtolower($brand['VALUE']); ?>/"><?=$brand['VALUE']; ?></a>
</li>
<? if($i%$inCol == 0 && $count > $i): ?>
</ul>
<ul>
<? endif; ?>
<? $i++; ?>
<? endforeach; ?>
</ul>
</div>
<? endif; ?>
<? else: ?>
<?
$curbrand = '';
$res = CIBlockPropertyEnum::GetList(array("SORT"=>"ASC", "VALUE"=>"ASC"), array('PROPERTY_ID' => 81));
while($brand = $res->GetNext()){
if (strtolower($brand['VALUE']) == urldecode($_REQUEST['brand']))
$curbrand = $brand['VALUE'];
}
global $arrFilter;
$arrFilter = array(
'PROPERTY_PROIZVODITEL_VALUE' => $curbrand
);
$APPLICATION->SetTitle($curbrand);
$APPLICATION->AddChainItem();
//if(CModule::IncludeModule("iblock")){
// $arSelect = Array("ID", "NAME", "DETAIL_TEXT", "PROPERTY_IMAGE");
// $arFilter = Array("IBLOCK_ID"=>5, "ID"=>$_REQUEST['id']);
// $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
// if($ar_res = $res->Fetch()){
// if($ar_res['PROPERTY_IMAGE_VALUE']){
// $arFileTmp = CFile::ResizeImageGet(
// $ar_res['PROPERTY_IMAGE_VALUE'],
// array("width" => 200, "height" => 200),
// BX_RESIZE_IMAGE_PROPORTIONAL,
// true
// );
// }
// $arrBrand = array(
// 'TITLE' => $ar_res['NAME'],
// 'DESCRIPTION' => $ar_res['DETAIL_TEXT'],
// 'IMAGE' => $arFileTmp['src'] ? $arFileTmp['src'] : false
// );
// }
//}
?>
<? if(!empty($arrBrand)): ?>
<?
$APPLICATION->SetTitle($arrBrand['TITLE']);
$APPLICATION->AddChainItem();
?>
<div class="b-brand-description">
<? if($arrBrand['IMAGE']): ?>
<div class="b-brand-description-image">
<img src="<?=$arrBrand['IMAGE']; ?>" alt="<?=$arrBrand['TITLE']; ?>" />
</div>
<? endif; ?>
<? if(!empty($arrBrand['DESCRIPTION'])): ?>
<?=$arrBrand['DESCRIPTION']; ?>
<? endif; ?>
<div class="g-clean"></div>
</div>
<? endif; ?>
<?$APPLICATION->IncludeComponent(
"ma:catalog.section",
"blocks3",
array(
"COMPONENT_TEMPLATE" => "blocks3",
"IBLOCK_TYPE" => "1c_catalog",
"IBLOCK_ID" => "11",
"SECTION_ID" => $_REQUEST["SECTION_ID"],
"SECTION_CODE" => "",
"SECTION_USER_FIELDS" => array(
0 => "",
1 => "",
),
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"FILTER_NAME" => "arrFilter",
"INCLUDE_SUBSECTIONS" => "Y",
"SHOW_ALL_WO_SECTION" => "Y",
"PAGE_ELEMENT_COUNT" => "20",
"PROPERTY_CODE" => array(
0 => "CML2_ARTICLE",
1 => "ALL",
2 => "",
),
"DISPLAY_IMG_WIDTH" => "205",
"DISPLAY_IMG_HEIGHT" => "160",
"SECTION_URL" => "/#IBLOCK_CODE#/#SECTION_CODE#/",
"DETAIL_URL" => "/product/#ELEMENT_CODE#/",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"AJAX_MODE" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"AJAX_OPTION_ADDITIONAL" => "",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_GROUPS" => "Y",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"BROWSER_TITLE" => "-",
"PAGE_TITLE" => "-",
"ADD_SECTIONS_CHAIN" => "N",
"DISPLAY_COMPARE" => "N",
"SET_TITLE" => "N",
"SET_STATUS_404" => "N",
"CACHE_FILTER" => "N",
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"PRICE_CODE" => array(
0 => "РОЗНИЦА",
),
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"PRICE_VAT_SHOW_VALUE" => "N",
"PRODUCT_PROPERTIES" => array(
),
"USE_PRODUCT_QUANTITY" => "N",
"BASKET_URL" => "/personal/cart/",
"USE_POPUP_BASKET" => "N",
"USE_BASKET_SCRIPT" => "Y",
"PAGER_TEMPLATE" => "modern",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Товары",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"PAGER_SHOW_ALL" => "N",
"FILTER_PROPERTIES" => array(
)
),
false
);?>
<? endif; ?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Адреса формируются следующим образом
/brands/гамма/
/brands/royal%20czech%20porcelain/
/brands/rainbow/
CMS Bitrix
Однословники на англ хорошо, но пробелы не заменяются на дефис и русские слова без транслита.
Помогите пожалуйста, что делать?
В обработке адресов следующее
Условие #^/brands/([\s\S]+)/#
ПРавило brand=$1
Необходимо заменить пробелы нижним подчеркиванием или дефисом. Для SEO лучше дефисом.☝
Необходимо заменить пробелы нижним подчеркиванием или дефисом. Для SEO лучше дефисом.☝
Вопрос не в том, что лучше, а как это сделать
Вопрос не в том, что лучше, а как это сделать
SSH и sed Вам в помощь)
Какое чучело вам сайт писало? :)
Почему именно Битрикс? На нем легко говнокодить? :)
В битриксе в настройках инфоблока во вкладке "Поля" Есть пункт "Символьный код", такой же есть и у разделов, там можно выставить все нужные вам настройки скрин
А те элементы что уже посоздавали, нужно написать скриптик, который веберет все элементы и пересоздаст поле CODE, если сами не сможете - обращайтесь
---------- Добавлено 01.10.2016 в 14:24 ----------
Какое чучело вам сайт писало? :)
Почему именно Битрикс? На нем легко говнокодить? :)
Говнокодить легко на всем, даже на том, где говнокодить впринципе нельзя, у PHP слишком низкий порог вхождения, по-этому квалификация спецов оставляет желать лучшего
переделать существующие урлы без дополнительного кода не удастся. Ищите специалиста который сможет сделать вам нужный модуль иначе еще долго будете мучится