XTRO

Участники
  • Публикации

    1042
  • Зарегистрирован

  • Посещение

  • Days Won

    59

Все публикации пользователя XTRO

  1. имхо, понятие seo - не просто заполнение каких либо полей, в т.ч. и пустых. 1) нигде не видел, чтобы юзеры заполняли эти поля, хотя бы потому, что действительно не знают что заполнять. И накручивать сюда код имхо ===empty 2) контент должен быть уникальным, а в данном случае сто два объявления могут отличаться только номером дома и что тогда робот будет думать? 3) а если объявление висит всего неделю и больше не продлевается, зачем его индексировать? Даже если индекс пройдёт, то следующего шторма можно самому умереть. а не выдачу увидеть. 3) вообще не вижу смысла здесь, а вот разделы, подразделы, их описание и т.п. - полезно и нужно, но это уже делает не юзер. Те же тэги полезны для Посетителя, но вредно для seo. Думается, нужно делать для удобства посетителей в первую очередь. 4) для новостей аналогично (не юзера задача).
  2. ещё как вариант (jquery) и капча вообще не нужна. Поскольку бот не умеет думать: -если submit завязан на GET, то при загрузке страницы дефолтную кнопку Отправить (type="submit") прячем жабой (append), добавляем жабой новый input (bind), но уже type="button", но него вешаем событие Save (ajax), в котором ещё добавляем флаг (немного избыточно, но не помешает) для проверки потом этого флага, но уже в POST. В скрипте на входе смотрим: Если не POST или нет флага - досвидос.
  3. скорее всего скорее всего не по памяти, а move_uploaded_file не отработал. У нас If в этом месте не обрабатывается. По идее, по хорошему, Exception тут не хватает.
  4. а файлы админки трогались? у админа в базе соответствующая группа (group_id) стоит?
  5. 1) RewriteCond %{HTTP_HOST} ^www\.ваш_сайт\.ruRewriteRule ^(.*)$ http://ваш_сайт.ru/$1 [R=permanent,L]2 ) уже обсуждалось 3) у каждого он будет всё равно свой из-за вариантов доступа к настройкам сервера. Например, мне пришлось добавлять: AddDefaultCharset UTF-8php_value upload_max_filesize 4Mphp_value post_max_size 4Mphp_value max_execution_time 90
  6. Вы имеете ввиду так? Тогда это уже не breadcrumbs, а полноценное меню получается.
  7. Это полный листинг? у меня для админки 404
  8. получим 500 вообще, правило работает, слэш добавляется, но нарушается роутинг шкуры
  9. а я, по своей тупости, (ещё до просмотра этого видео) полез приспосабливать для другого , т.к понадобилось сделать рандомный вывод графических custom_банеров в определенном разделе, подход использовал аналогичный: хтмл_код - обычная ссылка с картинки, а в имени - осмысленное системное имя для каждого банера (типа right_top_banner1, right_top_banner2, right_top_banner3 ), т.е. отличаются только цифрой, потом в нужном месте темплейта: {if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" eq '/kommercheskaya'} <div class="custom_banners"> {assign var=tmp_var value = $right_top_banner{rand(1,3)} } {if $tmp_var} {$tmp_var} {/if} </div> {/if} + добавить учёт кликов и получим миниротатор
  10. а я юзаю Smarty Debug Console просто через {debug} или для конкретники <pre>{$news_list_column|debug_print_var}</pre>или {$themeurl|var_dump}
  11. я добавил в .htaccess (подробнee в PM) Options +FollowSymLinksRewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})RewriteRule ^(.*)$ index.php [F,L]
  12. по сабжу: а мы о каком css говорим? 2? 3? Если 3, то будем использовать препроцессор SASS? какой тогда синтаксис: SCSS (более новый) и SASS (более старый)? Юзаем ли Compass ?
  13. Что база, что файлы : перед любыми работами/экспериментами: backup, backup и ещё раз backup! Как в поговорке : люди делятся на тех кто делает бэкапы и на тех кто теперь делает.
  14. если срочно, то пост выше. Но, правильнее, вариант переопределения в main.php. Тогда останется после обновления.
  15. подозреваю, что apps\system\lib\sitebill.php $rs = implode(' / ', array_reverse($ra));
  16. тогда конкретнее, где именно необходимо заменить?
  17. вообще в нескольких местах, в т.ч. apps\system\lib\sitebill_krascap.php apps\system\lib\sitebill.php в function get_breadcrumbs ( $items ) заменить символ / на свой Но, надо иметь ввиду, что исправление здесь только до следующего обновления ядра.
  18. я сделал по другому (всё по аналогии, не совсем кошерно, т.к. дублирование в декораторе, но на скорую руку работает) : В темплейте как обычно: {$resp_menu}создал \apps\system\lib\frontend\menu\resp_menu.php: <?php/** * Resp menu class */class Resp_Menu extends Structure_Manager{ /** * Constructor */ function __construct() { $this->SiteBill(); } /** * Get resp menu * @param * @return */ function get_menu() { require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/menu/menu_decorator.php'); //require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_implements.php'); $SM=new Structure_Manager(); $structure=$SM->loadCategoryStructure(); $data_structure=$SM->load_data_structure(0); foreach($structure['catalog'] as $cat_point){ $ch=0; $SM->getChildsItemsCount($cat_point['id'], $structure['childs'], $data_structure['data'][0], $ch); $data_structure['data'][0][$cat_point['id']]+=$ch; } foreach($structure['catalog'] as $id=>$cat_point){ if(!in_array($cat_point['id'], $structure['childs'][0])){ $structure['catalog'][$id]['name']=$structure['catalog'][$id]['name'].' ('.$data_structure['data'][0][$id].')'; } } $rs = Menu_Decorator::getMenu('resp_menu', $structure); return $rs; }}?>в apps\system\lib\frontend\menu\menu_decorator.php добавил выбор: case 'resp_menu' : { $function_name='getMenu_respmenu'; break; }и в конец класса: private static function getMenu_respmenu($category_structure){ $rs = '<ul class="menu">'; foreach ( $category_structure['childs'][0] as $item_id => $categoryID ) { if($category_structure['catalog'][$categoryID]['url']!=''){ if ( preg_match('/^http/', $category_structure['catalog'][$categoryID]['url']) ) { $rs .= '<li><a href="'.$category_structure['catalog'][$categoryID]['url'].'">'.$category_structure['catalog'][$categoryID]['name'].'</a>'; } else { $rs .= '<li><a href="'.SITEBILL_MAIN_URL.'/'.$category_structure['catalog'][$categoryID]['url'].'">'.$category_structure['catalog'][$categoryID]['name'].'</a>'; } }else{ $rs .= '<li><a href="'.SITEBILL_MAIN_URL.'/topic'.$categoryID.'.html">'.$category_structure['catalog'][$categoryID]['name'].'</a>'; } $rs .= self::getChildNodes_respmenu($categoryID, $category_structure, $current_category_id); $rs .= '</li>'; } $rs .= '</ul>'; return $rs; } private static function getChildNodes_respmenu($categoryID, $category_structure, $current_category_id) { if ( !is_array($category_structure['childs'][$categoryID]) ) { return ''; } $rs = '<ul style="z-index: 50">';//TODO move in css // foreach ( $category_structure['childs'][$categoryID] as $child_id ) { if($category_structure['catalog'][$child_id]['url']!=''){ $rs .= '<li><a href="'.SITEBILL_MAIN_URL.'/'.$category_structure['catalog'][$child_id]['url'].'">'.$category_structure['catalog'][$child_id]['name'].'</a>'; }else{ $rs .= '<li><a href="'.SITEBILL_MAIN_URL.'/topic'.$child_id.'.html"><span class="no-image">'.$category_structure['catalog'][$child_id]['name'].'</a>'; } if ( count($category_structure['childs'][$child_id]) > 0 ) { $rs .= self::getChildNodes_respmenu($child_id, $category_structure, $current_category_id); } $rs .= '</li>'; } $rs .= '</ul>'; return $rs; }в main.php в main() добавил } elseif ( $this->getConfigValue('menu_type') == 'respmenu' ) { require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/menu/respmenu.php'); $resp_menu = new Resp_Menu(); $this->template->assert('resp_menu', $resp_menu->get_menu());Ну, и в \apps\config\admin\config_mask.php, чтобы в админке можно было выбрать тип, заменил на: $data_model['menu_type']['select_data'] = array('purecss'=>'purecss','slidemenu'=>'slidemenu','megamenu'=>'megamenu', 'respmenu'=>'respmenu');css по вкусу. Я юзал KickStart. Правда, этот вариант отработает до очередного обновления . Имхо, просто добавить getChildsItemsCount() в виде опции (в конфиге рядом с выбором типа меню в следующих релизах )
  19. и что нам даст добавление? (getTemplateMenu ведь нигде не дёргается + private)