big boy

big boy
Рейтинг
308
Регистрация
18.11.2006
Должность
webmaster
instrumentariy:
Сервер работает отлично, стоит на fornex

У вас отлично работает сервер на fornex? Может я на каком-то другом форнексе, но через два года работы с ними понял на сколько он тормознутый. ХЗ может мне такой сервак достался. Я у них vps арендую.

А кто-нибудь знает модуль или патч, чтобы был редирект после объединения терминов? Мне больше 3к тегов перебрать надо, год буду редиректы вручную делать.

+1 за сборную солянку. Уже вижу такие разделы на сайте:

- Компьютеры

- Кожные заболевания

- Комнатные растения

- Политика

- Как заработать деньги в интернете

- Мебель

- Женщины

Сайт обречен на успех!

hakuna matata:
big boy, а разве taxonomy manager сам не умеет объединять термины, или нужен еще какой то функционал?

Term merge для этого нужен, по крайней мере как написано на странице описания. Уже поставил, еще не объединял, но пока никаких ошибок не было.

---------- Добавлено 30.03.2013 в 18:31 ----------

Все вроде ок, но не добавляет редирект со старого термина на новый, а я только из-за этого модуль и поставил.

Кто-нибудь ставил Taxonomy manager + Term merge на шестерку? Для term merge нет стабильной версии на 6-ку.

У меня ничего не вернулось. Катастрофа!

Как вам расклад - с 40к уников опуститься до 10к?

vertuhay:
я хз толи я тупой, с дле разобрался, друпал 7 открыл посотрел, закрыл :) мб 6 версию нада было попробывать, мне б простенький сайтик хоть склепать.

Друпал - это не коробочный продукт. В стандартной сборке даже wysiwyg редактора нет, так что забейте на друпал и делайте простенький сайт на вордпрессе или, не дай бог, на джумле.

vertuhay:
С друпалом можно научится работать без знания пшп и небольшим знанием ксс и штмл?

Смотря, что вам нужно. В принципе можно.

aftamat4ik:
В общем создается модуль.
В хуке
hook_init подключаем ко всем страницам сайта новый js файл, короче как-то так:

function loadfile_init(){
$path = drupal_get_path('module', 'loadfile');
drupal_add_js($path . '/js/lsystem.js');
}

Предположим все файлы у вас на страницах находятся по прямым ссылкам(что скорее всего так и есть) У этих ссылок есть свой классовый атрибут, пусть это будет class=someclass
тогда в файле lsystem.js пишем примерно! так

$(document).ready(function(){
$("body").delegate('.someclass',"click",function(e){
href = $(this).attr('href');//собсна ссылка
/*
Обычно все файлы, которые закачиваются находятся в 1 директории и отличаются друг от друга только по имени, то есть имя - единственный параметр который изменяется, мы его и получаем
Пусть ссылка выглядит так:
href = "/sites/default/files/blabla/arhivename.zip";
*/
name = href.split("/");
//name[4] - эо имя файла, во всяком случае либо [4] либо [3], да сами вкурите....
window.location = "/loadfile/"+name;//ГЛАВНОЕ, редиректим его, то есть юзера, на левую страницу, на котрой запилим ожидание.
return false;//обязательно!!
});
});

Теперь надо через хук hook_menu запилить страницу, на которой юзер будет ждать пока ему отдадут файл собсна.

Делается это следующим образом:

function loadfile_menu(){
$items['/loadfile/%'] = array(//редирект на загрузку файла по его идентификатору
'title' => t('Load File'),
'type' => MENU_CALLBACK,
'page callback' => 'func_loadFile',
'access arguments' => array('access content'),
);
return $items;
}

И собсна сама функция закачки будет как-то так выглядеть:

function func_loadFile(){
$filename = arg(1);//вроде 1, если урл такого рода: /loadfile/filename.zip, то нам надо filename.zip

$file_url= "/sites/default/files/blabla/".$filename;//про это выше я писал. 1 часть выражения - собсна каталог в который все файлы вы кидаете

$result = "<div>".$file_url."</div>";//прямая ссылка на файл как и заказывали. Есче сюда можно запилить нечто вроде вывода рекламы и прочего, на что хватит фантазии

//Дальше все просто:
sleep(3);//скока надо ждать там по вашему? Вот сюда это вписать надо.
$fpOrigin=fopen($file_url, 'rb'); //отдаем юзеру файл по чанкам...
header('Content-type: application/octet-stream');
$position = 0;
$size = 51200;

while(!feof($fpOrigin)){
//sleep(1); - это ЕСЛИ мы ограничиваем скорость скачки до 4кб/сек, соответственно для больше скорости 4096 надо заменить на большее число
$buffer=fread($fpOrigin, 4096); //we read chunks of 4096 bytes
fpassthru($buffer); //And we send them back to the current user
flush(); //we try to flush the output buffer, in case there is a deflated or gzipped transfert betweenm the web server and the client
}
fclose($fpOrigin);
return $result;
}

Надуюсь помог хД Возможно я где-то что-то упустил, хз. Я бы сделал так) Или чуть по другому, но похоже.



Если вариант вывода прямой ссылки не очень устраивает, то hook_page вам в помощ)

Спасибо! Я правда мало что понял, но главное, что реализуемо

Опыт есть, так же хочу подождать отзыв.

Всего: 2357