АРМАДА
Нужна помощь,человека знаеющего пхп)
На страницу 1, 2  След.
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 12:02 pmДобавить в избранноеОтветить с цитатой
Код:
<?php
set_time_limit(0);
include"wp-config.php";

$year="2008";
$month="2";
$day="12";

$result=mysql_query("Select * from `wp_posts` ORDER BY `ID` ASC");
$z=mysql_numrows($result);
for ($i=0; $i<$z; $i++) {
$n_day=rand(1,5);
$id = mysql_result($result, $i, 'ID');
$post_date = mysql_result($result, $i, 'post_date');
$pos=strpos($post_date," ");
$date=substr($post_date,$pos+1);
if($month==12 && $day>28) { $year=$year+1; $month="1"; $day="1"; }
else {
if($day>28) { $month=$month+1; $day="1"; }
}
if(strlen($day)==1){ $day="0".$day; }
if(strlen($month)==1){ $month="0".$month; }
$dd=$year."-".$month."-".$day." ".$date;

$sql = "UPDATE `wp_posts` SET `post_date`='$dd', `post_date_gmt`='$dd', `post_modified`='$dd', `post_modified_gmt`='$dd' WHERE `ID`='$id'";
$results = mysql_query($sql);

$day=$day+$n_day;
}
?>



Вот значит есть скриптик,он меняет даты постов... в начале ставится дата откуда начинается отсчет,собственно как ограничить разброс, а то я ставлю начальную 2008 и у меня в архиве появляется июль 2010,как ограничить нужным мне числом например 19 января 2009(ну что бы разброс был постов в пределе от и до) Помогите!

brantozawr
Опытный
Зарегистрирован: 10.11.2008
Сообщений: 126
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:08 pmОтветить с цитатой
я лучше своим поделюсь Wink

Код:


<?
    set_time_limit(0);

    $server="";
    $login  = "";
    $passwd = "";
    $dbname = "";
    $wp_posts = "wp_posts";

// 0, 0, 0, месяц, день, год
    $d1 = mktime(0, 0, 0, 1, 1, 2008);
    $d2 = mktime(0, 0, 0, 1, 20, 2009);

    $link = mysql_connect($server, $login, $passwd);
    mysql_select_db($dbname, $link);

    $query = "SELECT MIN(ID) as tmp FROM $wp_posts";
    $res = mysql_query($query, $link);
    $a = mysql_fetch_array($res);
    $id1 = $a["tmp"];

    $query = "SELECT MAX(ID) as tmp FROM $wp_posts";
    $res = mysql_query($query, $link);
    $a = mysql_fetch_array($res);
    $id2 = $a["tmp"];

    $query = "SELECT * FROM $wp_posts";
    $res = mysql_query($query, $link);

    $dx = floor(($d2-$d1)/($id2-$id1));

    while ($a = mysql_fetch_array($res)) {
        $id = $a["ID"];

      $d = $d1 + ($id-$id1)*$dx;
        $d = date("Y-m-d H:i:s", $d);

      $query = "UPDATE $wp_posts SET post_date='".$d."', post_date_gmt='".$d."', post_modified='".$d."', post_modified_gmt='".$d."' WHERE ID='".$id."'";
       $res1 = mysql_query($query, $link);

    }

    mysql_close($link);

?>


Gyrus
Свой
Зарегистрирован: 16.10.2008
Сообщений: 5
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:29 pmОтветить с цитатой
Это просто надо переписать скриптик... Smile потому что текущая реализация - берет все посты, и расставляет даты, с условием, что 1 пост будет делаться в 1-5 дней. Тоесть, если у тебя вылазит 2010 год, это.. видимо вобщем дохрена постов раскидываешь. Smile вот оно по этим условиям и меняет даты.. Smile
Я к чему... Если например, ты решишь выставить конечную дату скажем 20 января 2009, то, не получится ли так, что посты будут идти раз в минуту например?.. Smile
Код:

<?php
set_time_limit(0);
include"wp-config.php";

$year="2008";
$month="2";
$day="12";

$pct=10;

$lyear="2009"
$lmonth="1"
$lday="21"

$result=mysql_query("Select * from `wp_posts` ORDER BY `ID` ASC");
$z=mysql_num_rows($result);
$ldate=strtotime($lyear.'-'.$lmonth.'-'.$lday);
$sdate=strtotime($year.'-'.$month.'-'.$day);
$interval=$ldate-$sdate;
$sec=floor($interval/$z);
$st=floor(($sec/100)*$pct);

for ($i=0; $i<$z; $i++) {
$n_sec=rand($st,$sec);
$sdate+=$n_sec;
$post=mysql_fetch_object($result);
$ndate=date('Y-m-d H:i:s',$sdate);
$sql = "UPDATE `wp_posts` SET `post_date`='$ndate', `post_date_gmt`='$ndate', `post_modified`='$ndate', `post_modified_gmt`='$ndate' WHERE `ID`='".$post->id."'";
$results = mysql_query($sql);
}
?>


короче, оно берет количество всех постов из базы (например 100), стартовую дату и конечную дату. от конечной даты отнимает стартовую дату - получает промежуток, в который надо пометить эти 100 постов.
затем, этот промежуток - делится на количество постов. получаем интервал, с которым надо постить эти посты, чтоб уметсить в конечную дату. но, чтобы все посты не шли с одинаковым интервалом - добавляем процент... Smile
тоесть, чтобы уместить все посты до конечной даты - надо постить раз в 100 секунд к примеру. Используя $pct - выставляем процент, и в итоге, все посты будут поститься со случайным интервалом от 90 до 100 секунд. (10% от 100 секунд - будет 10 секунд, 100-10=90 - начальный интервал, конечный интервал=100)..
как-то так.
Не проверял, набросал прямо в форме быстрого ответа.. Smile работать должно.

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:29 pmОтветить с цитатой
И еще подскажите пожалуйста как вот такую штуку всавить в страницу ,и она работала?

Код:
<ul>
<?php wp_get_archives('type=monthly&limit=12'); ?>
</ul>
</li>



В шаблон вставляю все работает,но отображается на всех страницах,а надо на 1

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:32 pmОтветить с цитатой
Gyrus, Parse error: syntax error, unexpected T_VARIABLE in бла бла бла online 12

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:34 pmОтветить с цитатой
brantozawr, не работает тоже ошибка на 14 линии

brantozawr
Опытный
Зарегистрирован: 10.11.2008
Сообщений: 126
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:40 pmОтветить с цитатой
Что за ошибка? В первых строках не забудь вписать данные подключения к БД

Hello_Kitty
V.I.P.
Зарегистрирован: 30.04.2007
Сообщений: 10763
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:56 pmОтветить с цитатой
Napas писал(а):
И еще подскажите пожалуйста как вот такую штуку всавить в страницу ,и она работала?

Код:
<ul>
<?php wp_get_archives('type=monthly&limit=12'); ?>
</ul>
</li>



В шаблон вставляю все работает,но отображается на всех страницах,а надо на 1


используй if:
Код:
<?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?>
<ul>
<?php wp_get_archives('type=monthly&limit=12'); ?>
</ul>


тогда будет только на главной и в пагах виден архив.
ну и по другим ситуациям аналогично проставляешь.

ctapbiu
Опытный
Зарегистрирован: 06.01.2008
Сообщений: 328
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 1:57 pmОтветить с цитатой
Napas писал(а):
И еще подскажите пожалуйста как вот такую штуку всавить в страницу ,и она работала?



В шаблон вставляю все работает,но отображается на всех страницах,а надо на 1



Код:

<?php if (is_home()):?>
<ul>
<?php wp_get_archives('type=monthly&limit=12'); ?>
</ul>
<?php endif;?>
</li>



так?

upd: на минуту опоздал .)

Gyrus
Свой
Зарегистрирован: 16.10.2008
Сообщений: 5
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 3:03 pmОтветить с цитатой
Napas писал(а):
Gyrus, Parse error: syntax error, unexpected T_VARIABLE in бла бла бла online 12



Упс. Smile
точки с запятой расставь, в конце этих строк:

$lyear="2009";
$lmonth="1";
$lday="21" ;
вот так, и пробуй.. Smile

Hello_Kitty
V.I.P.
Зарегистрирован: 30.04.2007
Сообщений: 10763
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 4:12 pmОтветить с цитатой
Код:
<ul>
<?php wp_get_archives('type=monthly&limit=12'); ?>
</ul>
</li>


кстати в примере закрывающий тег li есть, а открывающего нет. Wink учти это.

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 6:31 pmОтветить с цитатой
ctapbiu, Hello_Kitty, Я немного не правильно выразился...я вставляю в page.php и отображается у меня 2 Страницы Архив и Связь с администрацией вот мне надо,что бы это отображалось только в Архив

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 6:37 pmОтветить с цитатой
И на всех страницах Smile

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 9:44 pmОтветить с цитатой
Gyrus, Без изменений(

Napas
Небо не шатко ман!
Зарегистрирован: 15.07.2008
Сообщений: 859
Обратиться по нику
# Добавлено:Вт Янв 20, 2009 9:49 pmОтветить с цитатой
brantozawr, Респект и уважуха все заработало,так как надо) +14
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры