Искать  
 
   
 
Query W3C Date
Отправлено: 05 Май 2010 05:36 A.M.   [ Игнорировать ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Цепляю edit_date из exp_weblog_titles. Разумеется работает, как теперь преобразовать в W3C формат для Google Sitemaps? Желательно без плагинов, спасибо.

Профиль
 
 
Отправлено: 05 Май 2010 06:44 A.M.   [ Игнорировать ]   [ # 1 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

Если Query, то что-то вроде этого:

SELECT DATE_FORMAT(FROM_UNIXTIME('entry_date'), '%Y') AS 'date_formatted' 
 Подпись 

booooring…

Профиль
 
 
Отправлено: 05 Май 2010 06:33 P.M.   [ Игнорировать ]   [ # 2 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Спасибо, можно в развернутом варианте?

{exp:query sql="SELECT    exp_weblog_titles.title as title,
                        exp_weblog_titles.edit_date,
                        exp_weblog_titles.entry_id as entry_id,
                        exp_weblog_titles.url_title as url_title,
                        exp_weblog_data.field_id_67 as iata
                FROM exp_weblog_titles
                LEFT JOIN exp_weblog_data
                ON exp_weblog_titles.entry_id = exp_weblog_data.entry_id
                WHERE exp_weblog_titles.weblog_id = '24'"
}
    
<url>
        <
loc>{homepage}airports/{iata}</loc>
        <
lastmod>{edit_date}</lastmod>
        <
changefreq>daily</changefreq>
        <
priority>0.7</priority>
    </
url>
{/exp:query} 

Привести в порядок надо {edit_date}.

W3C изнутри:

%Y-%m-%dT%H:%i:%s%

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

Профиль
 
 
Отправлено: 05 Май 2010 08:11 P.M.   [ Игнорировать ]   [ # 3 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

как-то так:

{exp:query sql="SELECT    exp_weblog_titles.title as title,
                        DATE_FORMAT(FROM_UNIXTIME(exp_weblog_titles.edit_date), '%Y-%m-%dT%H:%i:%s%Q') as date_formatted,
                        exp_weblog_titles.entry_id as entry_id,
                        exp_weblog_titles.url_title as url_title,
                        exp_weblog_data.field_id_67 as iata
                FROM exp_weblog_titles
                LEFT JOIN exp_weblog_data
                ON exp_weblog_titles.entry_id = exp_weblog_data.entry_id
                WHERE exp_weblog_titles.weblog_id = '24'"
}
    
<url>
        <
loc>{homepage}airports/{iata}</loc>
        <
lastmod>{date_formatted}</lastmod>
        <
changefreq>daily</changefreq>
        <
priority>0.7</priority>
    </
url>
{/exp:query} 

не проверял, но должно работать

 Подпись 

booooring…

Профиль
 
 
Отправлено: 05 Май 2010 08:27 P.M.   [ Игнорировать ]   [ # 4 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Благодарю, но не работает. Вместо даты вижу  {date_formatted}.

Профиль
 
 
Отправлено: 06 Май 2010 06:50 P.M.   [ Игнорировать ]   [ # 5 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Спросил на оф форумах

<?php
    
global $DB$PREFS;
    
$airport $DB->query("SELECT exp_weblog_titles.entry_id, exp_weblog_titles.url_title, exp_weblog_titles.edit_date, exp_weblog_data.field_id_67
                        FROM exp_weblog_titles
                        LEFT JOIN exp_weblog_data
                        ON exp_weblog_titles.entry_id = exp_weblog_data.entry_id
                        WHERE exp_weblog_titles.weblog_id='24' AND status='open' ORDER BY edit_date DESC"
);
?>
.......

    
<?php
        
if($airport->num_rows 0{
            
foreach($airport->result AS $iata{
                
print "<url>\n\t\t";
                print 
"<loc>{$PREFS->ini('site_url')}airports/{$iata['field_id_67']}</loc>\n\t\t";
                print 
"<priority>0.7</priority>\n\t\t";
                print 
"<lastmod>" date("c"strtotime($iata['edit_date'])) . "</lastmod>\n\t";
                print 
"</url>\n\t";
            
}
        }
    ?> 
Профиль