Files
globelus.pl/autoload/admin/factory/class.Sitemap.php
2024-11-11 15:28:20 +01:00

162 lines
7.7 KiB
PHP

<?php
namespace admin\factory;
class Sitemap
{
public static function sitemap( $sitemap, $available_domains, $domain_prefix, $www, $url )
{
global $mdb;
$site_map_tmp = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
$site_map_tmp .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . PHP_EOL;
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
$results = $mdb -> select( 'globelus_adverts', [ 'id', 'title', 'last_refresh', 'date_add' ], [ 'AND' => [ 'visible' => 1, 'disabled_by_admin' => 0, 'OR' => [ 'active_to' => null, 'active_to[>=]' => date( 'Y-m-d' ) ] ] ] );
foreach ( $results as $row )
{
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/oferta/' . $row['id'] . '/' . \S::seo( $row['title'], true ) . '</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . ( $row['last_refresh'] ? date( 'Y-m-d', strtotime( $row['last_refresh'] ) ) : date( 'Y-m-d', strtotime( $row['date_add'] ) ) ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
}
$site_map_tmp .= '</urlset>' . PHP_EOL;
$fp = fopen( '../sitemap-oferty-pracy.xml', 'w' );
fwrite( $fp, $site_map_tmp );
fclose( $fp );
$site_map_tmp = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL;
$site_map_tmp .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . PHP_EOL;
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
$results = $mdb -> select( 'globelus_countries', [ 'id', 'name' ] );
foreach ( $results as $row )
{
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/oferty-pracy/' . \S::seo( $row['name'], true ) . '</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/oferty-pracy/' . \S::seo( $row['name'], true ) . '/bez-jezyka</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/oferty-pracy/' . \S::seo( $row['name'], true ) . '/bez-doswiadczenia</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/oferty-pracy/' . \S::seo( $row['name'], true ) . '/dla-par</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
$site_map_tmp .= '<url>' . PHP_EOL;
$site_map_tmp .= '<loc>https://www.globelus.pl/oferty-pracy/' . \S::seo( $row['name'], true ) . '/od-zaraz</loc>' . PHP_EOL;
$site_map_tmp .= '<lastmod>' . date( 'Y-m-d' ) . '</lastmod>' . PHP_EOL;
$site_map_tmp .= '<changefreq>daily</changefreq>' . PHP_EOL;
$site_map_tmp .= '<priority>1</priority>' . PHP_EOL;
$site_map_tmp .= '</url>' . PHP_EOL;
}
$site_map_tmp .= '</urlset>' . PHP_EOL;
$fp = fopen( '../sitemap-panstwa.xml', 'w' );
fwrite( $fp, $site_map_tmp );
fclose( $fp );
// if ( is_array( $available_domains ) and count( $available_domains ) )
// {
// /* to do */
// }
// else
// {
// $sitemap_tmp = $sitemap[ $url ];
// try {
// $results = $mdb -> query( 'SELECT '
// . 'name_seo '
// . 'FROM '
// . 'globelus_adverts_categories AS gac' ) -> fetchAll( \PDO::FETCH_ASSOC );
// if ( is_array( $results ) and count( $results ) ) foreach ( $results as $row )
// {
// $urls .= '<url>' . PHP_EOL;
// $urls .= '<loc>' . $domain_prefix . '://' . $www . $url . '/oferty-pracy/' . $row['name_seo'] . '</loc>' . PHP_EOL;
// $urls .= '<changefreq>weekly</changefreq>' . PHP_EOL;
// $urls .= '<priority>1</priority>' . PHP_EOL;
// $urls .= '</url>' . PHP_EOL;
// }
// }
// catch ( \Throwable $t ) {
// \S::pre( $mdb -> error() );
// }
// try {
// $results = $mdb -> query( 'SELECT '
// . 'name_seo '
// . 'FROM '
// . 'globelus_countries AS gc' ) -> fetchAll( \PDO::FETCH_ASSOC );
// if ( is_array( $results ) and count( $results ) ) foreach ( $results as $row )
// {
// $urls .= '<url>' . PHP_EOL;
// $urls .= '<loc>' . $domain_prefix . '://' . $www . $url . '/oferty-pracy/' . $row['name_seo'] . '</loc>' . PHP_EOL;
// $urls .= '<changefreq>weekly</changefreq>' . PHP_EOL;
// $urls .= '<priority>1</priority>' . PHP_EOL;
// $urls .= '</url>' . PHP_EOL;
// }
// }
// catch ( \Throwable $t ) {
// \S::pre( $mdb -> error() );
// }
// try {
// $results = $mdb -> query( 'SELECT '
// . 'id, title '
// . 'FROM '
// . 'globelus_adverts AS ga '
// . 'WHERE '
// . 'visible = 1 '
// . 'AND '
// . '( active_to IS NULL OR active_to <= \'' . date( 'Y-m-d' ) . '\' )' ) -> fetchAll( \PDO::FETCH_ASSOC );
// if ( is_array( $results ) and count( $results ) ) foreach ( $results as $row )
// {
// $urls .= '<url>' . PHP_EOL;
// $urls .= '<loc>' . $domain_prefix . '://' . $www . $url . '/oferta/' . $row['id'] . '/' . \S::seo( $row['title'], true ) . '</loc>' . PHP_EOL;
// $urls .= '<changefreq>weekly</changefreq>' . PHP_EOL;
// $urls .= '<priority>1</priority>' . PHP_EOL;
// $urls .= '</url>' . PHP_EOL;
// }
// }
// catch ( \Throwable $t ) {
// \S::pre( $mdb -> error() );
// }
// $sitemap_tmp = str_replace( '</urlset>', $urls . '</urlset>', $sitemap_tmp );
// $sitemap[ $url ] = $sitemap_tmp;
// }
return $sitemap;
}
}