За последние 24 часа нас посетили 17620 программистов и 1719 роботов. Сейчас ищут 1845 программистов ...

Помогите с Zend_Db_Table условием и датой :(

Тема в разделе "PHP и базы данных", создана пользователем Azura, 11 май 2014.

  1. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Дизайнер :) мне постоянно с вами не везет у вас там заговор против меня?
    Может в лог ошибок посмотришь может где косяк еще есть?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    там не база а апдейт какой-то без структуры таблиц. сделай дамп.
     
  3. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Да ну нафига?

    Надо научить ТС в логи смотреть :)


    public function getDate($birthdayStr)
    {
      $now = new DateTime();
      $birthday = new DateTime($birthdayStr);
      return explode('|', $birthday->diff($now)->format('%y|%m|%d'));
    $date = $this->getDate($birthdayStr);
      $month = $data[1];
    }
    //


         //////**/////
        public function getImageUrl()
        {
           //$month? What do you want from me? Вот что думает php :)
            global $APP_CONFIG;
            if($month > 0 && $month <= 1) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/{$this->getColorImg()}";
            elseif($month > 1 && $month <= 2) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."2"."{$this->getColorImg()}";
            elseif($month > 2 && $month <= 4) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."3"."{$this->getColorImg()}";
            elseif($month > 4 && $month <= 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."4"."{$this->getColorImg()}";
            elseif($month > 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."5"."{$this->getColorImg()}";
            ;
        } // end getImageUrl

    Добавлено спустя 1 минуту 59 секунд:
    Почитай про область видимости.

    Добавлено спустя 1 минуту 56 секунд:
    и про классы то же(((
     
  4. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Добрый вечер! :D Я вас первый раз вижу, молодой человек, ну какой заговор? =))))
    Мне вот с программистами так же не везло))))
    А лог я достать не могу... У меня хостер создал символическую ссылку... Папочку такую, фальшивую и я не только не могу выцепить хоть один лог, но и даже узнать где они на самом деле...
    Про классы и область видимости прочитаю. :) Если не пойму что-то, можно будет обратиться?)


    Простите, вот... Х(
    http://yadi.sk/d/LDgN63mTPr2QH
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Отличный стих Есть хочу :)
    вспомнил народное творчество на стенах нашего универа там правда не так изыскано и не соблюдался стихотворный слог местами но тож за душу брало.
    Браво!

    Это было лирическое отступление :)

    А локально мучать скрипты что мешает?
    Ну я вообще то перешел в стан врага, питон понравился, но думаю чем могу помогу...

    Добавлено спустя 27 минут 8 секунд:
    Бухлоеж меня ваще убил:)
    Девушка у вас талант, обращайтесь я не смогу вам отказать:)

    Код (PHP):
    1. <?php
    2. class Pet extends ActiveTable
    3. {
    4.     protected $table_name = 'user_pet';
    5.     protected $primary_key = 'user_pet_id';
    6.     private $_month = '';
    7.     protected $LOOKUPS = array(
    8.         array(
    9.             'local_key' => 'pet_specie_id', 
    10.             'foreign_table' => 'pet_specie',
    11.             'foreign_key' => 'pet_specie_id',
    12.             'join_type' => 'inner',
    13.         ),
    14.         array(
    15.             'local_key' => 'pet_specie_color_id', 
    16.             'foreign_table' => 'pet_specie_color',
    17.             'foreign_key' => 'pet_specie_color_id',
    18.             'join_type' => 'inner',
    19.         ),
    20.     );
    21.     protected $RELATED = array(
    22.         'user' => array(
    23.             'class' => 'User',
    24.             'local_key' => 'user_id',
    25.             'foreign_key' => 'user_id',
    26.             'one' => true,
    27.         ),
    28.     );
    29.  
    30.     /**
    31.      * Get the full URL for this pet's image.
    32.      * 
    33.      * @return string 
    34.      /////////////*извлекаю запись из бд - формат даты: 2014-05-06 11:27:28*/////////////
    35.           
    36.  
    37.     /////////////*пытаюсь перевести полученную дату в mktime*/////////////
    38.         //$happybirthday = date('Y-m-d H:i:s', mktime($year, $month, $day, $H, $i, $s));
    39.     ////echo happybirthday($happybirthday);
    40.  
    41.   // Количество лет, месяцев и дней, прошедших со дня рождения
    42.   
    43.  
    44.     
    45.       function happybirthday($birthdayStr)
    46.         {
    47.        $happybirthday = $this->getCreatedAt();
    48.         $now = new DateTime();
    49.         $birthday = new DateTime($birthdayStr);
    50.         list($year, $month, $day) = explode('|', $birthday->diff($now)->format('%y|%m|%d'));
    51.             $result = declination($year);
    52.             $result .= declination($month);
    53.             $result .= declination($day);
    54.             return $result;
    55.         }
    56.         
    57. public function getDate($birthdayStr)
    58. {
    59.   $now = new DateTime();
    60.   $birthday = new DateTime($birthdayStr);
    61.   return explode('|', $birthday->diff($now)->format('%y|%m|%d'));
    62. $date = $this->getDate($birthdayStr);
    63.   $this->_month = $data[1];
    64. }
    65. //
    66.  
    67.  
    68.      //////**/////
    69.     public function getImageUrl()
    70.     {
    71.         global $APP_CONFIG;
    72.  
    73.         if($this->_month > 0 && $this->_month <= 1) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/{$this->getColorImg()}";
    74.         elseif($this->_month > 1 && $this->_month <= 2) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."2"."{$this->getColorImg()}";
    75.         elseif($this->_month > 2 && $this->_month <= 4) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."3"."{$this->getColorImg()}";
    76.         elseif($this->_month > 4 && $this->_month <= 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."4"."{$this->getColorImg()}";
    77.         elseif($this->_month > 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."5"."{$this->getColorImg()}";
    78.         ;
    79.     } // end getImageUrl
    80.  
    81.     /**
    82.      * Make this its owner's active pet.
    83.      * 
    84.      * @return bool 
    85.      **/
    86.     public function makeActive()
    87.     {
    88.         $user = $this->grabUser();
    89.  
    90.         // Should never happen...
    91.         if($user == null)
    92.         {
    93.             return false;
    94.         }
    95.  
    96.         $user->setActiveUserPetId($this->getUserPetId());
    97.         $user->save();
    98.         
    99.         return true;
    100.     } // end public function makeActive
    101.  
    102.     /**
    103.      * Add the appropriate amount to the pet's hunger level. 
    104.      * 
    105.      * @param integer $amount 
    106.      * @return bool 
    107.      **/
    108.     public function consume($amount)
    109.     {
    110.         $hunger = $this->getHunger() + $amount;
    111.         if($hunger > $this->getMaxHunger())
    112.         {
    113.             $hunger = $this->getMaxHunger();
    114.         }
    115.         
    116.         $this->setHunger($hunger);
    117.  
    118.         return $this->save();
    119.     } // end consume
    120.  
    121.     /**
    122.      * Add the appropriate amount to the pet's happiness level. 
    123.      * 
    124.      * @param integer $amount 
    125.      * @return bool 
    126.      **/
    127.     public function play($amount)
    128.     {
    129.         $happy = $this->getHappiness() + $amount;
    130.         if($happy > $this->getMaxHappiness())
    131.         {
    132.             $happy = $this->getMaxHappiness();
    133.         }
    134.         
    135.         $this->setHappiness($happy);
    136.  
    137.         return $this->save();
    138.     } // end consume
    139.  
    140.     /**
    141.      * Hackishly return the hunger level as a string. 
    142.      * 
    143.      * @hack
    144.      * @return string 
    145.      **/
    146.     public function getHungerText()
    147.     {
    148.         $hunger = $this->getHunger();
    149.  
    150.         if($hunger <= 2) return 'Истощение! Покормите!';
    151.         elseif($hunger > 2 && $hunger <= 4) return 'Сильный голод';
    152.         elseif($hunger > 4 && $hunger <= 6) return 'Небольшой голод';
    153.         elseif($hunger > 6 && $hunger <= 8) return 'Не голоден, но не против лакомства';
    154.         elseif($hunger > 8 && $hunger <= 12) return 'Сыт';
    155.         elseif($hunger > 12) return 'Обжора! Лопнет же!';
    156.         
    157.         return 'error!';
    158.     } // end getHungerText
    159.  
    160.     /**
    161.      * Hackishly return the happiness level as a string. 
    162.      * 
    163.      * @hack
    164.      * @return string 
    165.      **/
    166.     public function getHappinessText()
    167.     {
    168.         $happy = $this->getHappiness();
    169.  
    170.         if($happy <= 2) return 'В бешенстве! >8E';
    171.         elseif($happy > 2 && $happy <= 4) return 'Грустит и злится >:(';
    172.         elseif($happy > 4 && $happy <= 6) return 'В печали :(';
    173.         elseif($happy > 6 && $happy <= 8) return 'Нейтралитет :|';
    174.         elseif($happy > 8 && $happy <= 12) return 'Счастье :)';
    175.         elseif($happy > 12) return 'Счастье и радость! :D';
    176.         
    177.         return 'error!';
    178.     } // end getHungerText
    179.  
    180.     /**
    181.      * If it's time for the pet's attribute to drop, do it. 
    182.      * 
    183.      * @param integer $period_length The number of seconds that equals 
    184.      *                               one period.
    185.      * @return bool
    186.      **/
    187.     public function doDecrement($period_length=3600)
    188.     {
    189.         // It is time.
    190.         if($this->getUnixtimeNextDecrement() <= time())
    191.         {
    192.             // First time.
    193.             if($this->getUnixtimeNextDecrement() == 0)
    194.             {
    195.                 $interval = 1;
    196.             }
    197.             else
    198.             {
    199.                 $interval = time() - $this->getUnixtimeNextDecrement();
    200.                 $interval = floor($interval / $period_length);
    201.             }
    202.  
    203.             return $this->decrementAttributes($interval,(time() + $period_length));
    204.         } // end time check
    205.         
    206.         // Nope, not time.
    207.         return false;
    208.     } // end doDecrement
    209.  
    210.  
    211.     /**
    212.      * Decrement a pet's hunger/happiness level by rand(1,3).
    213.      * 
    214.      * @param int $periods The number of periods to decrement for.
    215.      * @param int $next_time The next time to perform decremention at.
    216.      * @return bool
    217.      **/
    218.     protected function decrementAttributes($periods,$next_time)
    219.     {
    220.         // The DB should protected against negative values.
    221.         $this->setHunger(($this->getHunger() - (rand(1,3) * $periods)));
    222.         $this->setHappiness(($this->getHappiness() - (rand(1,3) * $periods)));
    223.         $this->setUnixtimeNextDecrement($next_time);
    224.         
    225.         return $this->save();
    226.     } // end decrementAttributes
    227. } // end Pet
    228.  
    229. ?>
    Попробуй. Если я правильно понял то в getDate ты получаешь нужную дату и ее используешь в getImageUrl. Соответственно getDate надо вызвать до getImageUrl.
     
  6. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Спасибо))))
    Надеюсь на второе высшее смогу поступить на программирование... =) И тогда... и питоны и перлы... всё попробую. Х)
    Мне локальный сервер ставить запрещают...)))) Говорят так: "За***ла весь комп! Из-за тебя всё глючит!"
    Поэтому на фришке тестирую.
    Про область видимости вроде начало доходить.... Ну и прочла и начала полностью понимать что есть класс (во всём проблемном файле он один и весь код - это его туловище)... Но понять массивы эти сверху и что они несут так полностью и не смогла. :( Это же и есть этот... Zend_Db_Table, правильно? И как туда добавить ещё один массив грамотно, чтобы он нёс время создания питомца?

    Заметила, что вы уже отредактировали сообщение. Спасибо! Пошла ковырять! :D

    Заменила код, вашим... и ...^^ Фатальная ошибка. Белая, пустая страница :,(
    Этот файл проклят....
    Кстати, логи появятся ровно через сутки. Такая вот дурацкая настройка у хостера... Буду думать дальше.
    И попробую а локалке поднять, пока никто не видит...
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    скорее прямо внутри сделать $this->getCreatedAt(); и расковырять
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Ниче так бывает.
    Поставь xampp его даже на флешку ставить можно.

    Так вроде порешали делать через метод который написал romach? Если нет то да ковырять getCreatedAt().

    Во всяком случае надо в логах смотреть тут чую просто проблема в синтаксисе, просто отладить надо.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я так понимаю что этот метод вернёт именно то, что в бд в поле CreatedAt живёт. что вроде верный путь.
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Ну там много букаф некоторые я не осилил, поэтому доверимся твою мнению. Пойдем по этому пути.
    Пока что я вижу синтаксические ошибки и пробелы в знании как работать с классами.

    Добавлено спустя 7 минут 44 секунды:
    Код (PHP):
    1.     public function getImageUrl()
    2.     {
    3.         global $APP_CONFIG;
    4. var_dump($this->getCreatedAt());
    5.         if($month > 0 && $month <= 1) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/{$this->getColorImg()}";
    6.         elseif($month > 1 && $month <= 2) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."2"."{$this->getColorImg()}";
    7.         elseif($month > 2 && $month <= 4) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."3"."{$this->getColorImg()}";
    8.         elseif($month > 4 && $month <= 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."4"."{$this->getColorImg()}";
    9.         elseif($month > 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."5"."{$this->getColorImg()}";
    10.         ;
    11.     } // end getImageUrl
    12.  
    Что пишет при вызове getImageUrl ?
     
  11. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    У меня перестал работать весь профиль персонажа и на его месте надпись: string(19) "2014-05-06 11:27:28" =)
    Я вам тоже в пм скинула адрес)
     
  12. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Перестал работать потому что там die который останавливает работу скрипта.

    Это та дата которая нужна? Тогда что бы получить месяц выполни
    Код (PHP):
    1.     public function getImageUrl()
    2.     {
    3.         global $APP_CONFIG;
    4.         $month = date('m', strtotime($this->getCreatedAt()));
    5.         if($month > 0 && $month <= 1) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/{$this->getColorImg()}";
    6.         elseif($month > 1 && $month <= 2) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."2"."{$this->getColorImg()}";
    7.         elseif($month > 2 && $month <= 4) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."3"."{$this->getColorImg()}";
    8.         elseif($month > 4 && $month <= 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."4"."{$this->getColorImg()}";
    9.         elseif($month > 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."5"."{$this->getColorImg()}";
    10.         ;
    11.     } // end getImageUrl
    12.  
     
  13. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Да! Это дата создания питомца! =)
    Сейчас попробую функцию =)))
    Если что, то отпишусь завтра. Поэтому спокойной ночи всем! Спасибо вам огромное, ребята! =)
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    погоди, детачка
    тебе надо месяц даты создания или месяц жизни питомца? =))))
     
  15. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Ура! Вариант условия от Смита рабочий!
    Теперь другая проблема)))) Нет счётчика, который вычисляет сколько месяцев прошло от времени создания пэта, условие показывает пока только сам месяц - 5ый. =) А надо чтобы было от 0 до 1, т.к. пету нет месяца. Вот =)

    Теперь точно всем приятных снов!

    Добавлено спустя 1 минуту 4 секунды:
    Жизни, конечно! :))) Но меня гонят в люльку :(
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тебе 23 года. уже должны не в люльку а на супружеское ложе гнать :D
     
  17. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Я деликатно промолчу. :D
    Всем доброе утро!
    Я сейчас сама попробую доковырять, кажется я поняла...
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    теперь короче тебе надо понять, как ты хочешь считать время.
    Месяц - понятие растяжимое. В феврале мало дней, в другом месяце - много. Надо ли тебе вообще привязывать возраст пета к месяцам, не проще ли считать в сутках? Подумай. В сутках очень просто считать.
    $month = date('m', strtotime($this->getCreatedAt()));
    замени на
    $days = floor(strtotime($this->getCreatedAt()) / 24 * 60 * 60);
     
  19. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Вы правы! Действительно проще!
    Потому что я сейчас внедрила код вычисления в показ изображений и зайчонок мой оказался уже взрослым))) Почему-то месяц множится на 3...
    Вот как выглядит код сейчас - (теперь всё только в выводе картинки):
    Код (PHP):
    1.  public function getImageUrl()
    2.     {
    3.         global $APP_CONFIG;
    4.         $happybirthday = date('m', strtotime($this->getCreatedAt()));
    5.         
    6.     // Сегодняшняя дата
    7.     $sec_now = time();
    8.     // Подсчитываем количество месяцев, лет
    9.     for($time = $happybirthday, $month = 0; 
    10.         $time < $sec_now; 
    11.         $time = $time + date('t', $time) * 86400, $month++){
    12.         $rtime = $time;
    13.         }
    14.     $month = $month - 1;
    15.     // Количество лет
    16.     $year = intval($month / 12);
    17.     // Количество месяцев
    18.     $month = $month % 12;
    19.     // Количество дней
    20.     $day = intval(($sec_now - $rtime) / 86400);
    21.         
    22.         if($month > 0 && $month <= 1) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/{$this->getColorImg()}";
    23.         elseif($month > 1 && $month <= 2) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."2"."{$this->getColorImg()}";
    24.         elseif($month > 2 && $month <= 4) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."3"."{$this->getColorImg()}";
    25.         elseif($month > 4 && $month <= 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."4"."{$this->getColorImg()}";
    26.         elseif($month > 9) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."5"."{$this->getColorImg()}";
    27.         ;
    28.     }
    Сейчас попробую на дни переключить... =) Спасибо!
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    он не множится.

    вобщем задумайся над тем, что ты хочешь получить и вперёд.
    сейчас код смешной. =)
     
  21. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    В общем я намутила какую-то странную вещь... Чувствую себя первоклашкой, пытающимся решить задачу с логарифмами какими-нибудь...
    Теперь условие возвращает только первое значение.
    Пытаюсь, в общем, сделать отсчёт по дням теперь... Х_х
    Почему переменная дней имеет значение - int(11)?( И что не так с циклом?( И... зря я, наверное, массив сделала...
    Код (PHP):
    1. public function getImageUrl()
    2.     {
    3.         global $APP_CONFIG;
    4. $birthday=date('Y m d',strtotime($this->getCreatedAt()));
    5. $data_b=array (
    6. 1 => $year=date('Y',strtotime($this->getCreatedAt())),
    7. 2 => $month=date('m',strtotime($this->getCreatedAt())),
    8. 3 => $day=date('m',strtotime($this->getCreatedAt())),
    9. );
    10. $day = date('d', strtotime($this->getCreatedAt()));
    11.     $sec_now = time();
    12.     for($time = $birthday, $data_b[2] = 0; 
    13.         $time < $sec_now; 
    14.         $time = $time + date('t', $time) * 86400, $data_b[2]++){
    15.         $rtime = $time;
    16.         }
    17.     $month = $data_b[2] - 1;
    18.     $year = intval($data_b[2] / 12);
    19.     $month = $data_b[2] % 12;
    20.     $day = intval(($sec_now - $rtime) / 86400);
    21.      global $APP_CONFIG;
    22.         
    23.         if($day > 0 && $day <= 31) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/{$this->getColorImg()}";
    24.         elseif($day > 31 && $day <= 62) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."2"."{$this->getColorImg()}";
    25.         elseif($day > 62 && $day <= 124) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."3"."{$this->getColorImg()}";
    26.         elseif($day > 124 && $day <= 279) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."4"."{$this->getColorImg()}";
    27.         elseif($day > 279) return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/"."5"."{$this->getColorImg()}";
    28.         ;
    29.     }
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А если сначала подумать, а потом писать? =) это очень важно.

    Добавлено спустя 10 минут 24 секунды:
    Код (PHP):
    1.   public function getImageUrl() {
    2.     global $APP_CONFIG;
    3.     $created = strtotime($this->getCreatedAt());
    4.     $days = floor((time() - $created) / 86400);
    5.     $stage = 0;
    6.     if ($days > 279) {
    7.       $stage = 4;
    8.     } elseif ($days > 124) {
    9.       $stage = 3;
    10.     } elseif ($days > 62) {
    11.       $stage = 2;
    12.     } elseif ($days > 31) {
    13.       $stage = 1;
    14.     }
    15.     return "{$APP_CONFIG['public_dir']}/resources/pets/{$this->getRelativeImageDir()}/$stage.{$this->getColorImg()}";
    16.   }
    Именовать картинки надо с нуля. Число отделяется точкой! т.е. имя выглядит так:
    0.pikachu.png

    усё. только не надо ничего менять на свой стиль. число должно быть всегда, так будет проще для жизни.
    честно говоря, если картинки разных петов живут в разных папках, я вообще не вижу смысла иметь им разные названия.
     
  23. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Ну не правда ваша, я всю голову сломала(((

    Какой стиль...))) Таких как я справедливо называют если не нубом, то быдлокодером)))) Стиль пьяного тычка в небо))))
    Иерархия папок у петов:
    Петы->Раса->0.вид1.jpg
    __________->2.вид1.jpg
    _________ ->3.вид1.jpg
    _________ ->и т.д.

    Нумерация вначале обозначает возраст: малыш - 0, ребёнок - 1, подросток - 2 и т.д.
    Нумерация в конце - вид.

    Ща попробую в общем ваш вариант, спасибо большое))))))
     
  24. Azura

    Azura Новичок

    С нами с:
    11 май 2014
    Сообщения:
    22
    Симпатии:
    0
    Ура! Огромное спасибо Игорю, Смиту и Ромычу!!!! Скрипт работает. Это моя дырявая бошка виновата, простите Игорь... =) У меня в бд стоял просто 2013 год. Я успела поковырять БД, чтобы проверить скрипт и забыла сменить обратно....
    [​IMG]
    Всем ребятам, кто мне помогал, выслала в ЛС свои контакты. Если нужна будет помощь с вёрсткой, дизайном или нарисовать рисунок надо будет - ОБРАЩАЙТЕСЬ, не стесняйтесь!!!!

    А ещё я надеюсь вы не против, если ваши ники будут в игрушке висеть на станичке благодарностей, вместе с ссылкой на этот замечательный форум. :)
    И вообще я у вас тут поселюсь, мне понравилось... Тоже буду помогать по разделу HTML/CSS =)
     
  25. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    И это хорошо. Немного позитива нашему суровому мужскому коллективу не помешает ))