Skip to content
Snippets Groups Projects
Select Git revision
  • 8dbf27e20441f141abd0cdb8fa52ef244f07dc1c
  • master default protected
2 results

generate_users.sh

Blame
  • functions.php 5.66 KiB
    <?php
    
    /*
    	Custom theme functions
    
    	Note: we recommend you prefix all your functions to avoid any naming
    	collisions or wrap your functions with if function_exists braces.
    */
    function numeral($number, $hideIfOne = false) {
    	if($hideIfOne === true and $number == 1) {
    		return '';
    	}
    
        $ext = $number == 1 ? 'er' : 'ème';
    	return $number . $ext;
    }
    
    function count_words($str) {
    	return count(preg_split('/\s+/', strip_tags($str), null, PREG_SPLIT_NO_EMPTY));
    }
    
    function pluralise($amount, $str, $alt = '') {
    	return intval($amount) === 1 ? $str : $str . ($alt !== '' ? $alt : 's');
    }
    
    function relative_time($date) {
    	if(is_numeric($date)) $date = '@' . $date;
    
    	$user_timezone = new DateTimeZone(Config::app('timezone'));
    	$date = new DateTime($date, $user_timezone);
    
    	// get current date in user timezone
    	$now = new DateTime('now', $user_timezone);
    
    	$elapsed = $now->format('U') - $date->format('U');
    
    	if($elapsed <= 1) {
    		return 'Just now';
    	}
    
    	$times = array(
    		31104000 => 'an',
    		2592000 => 'mois',
    		604800 => 'semaine',
    		86400 => 'jour',
    		3600 => 'heure',
    		60 => 'minute',
    		1 => 'seconde'
    	);
    
    	foreach($times as $seconds => $title) {
    		$rounded = $elapsed / $seconds;
    
    		if($rounded > 1) {
    			$rounded = round($rounded);
    			return 'il y a ' . $rounded . ' ' . pluralise($rounded, $title);
    		}
    	}
    }
    
    function html_meta($key) {
        $output = html_entity_decode(site_meta($key));
        echo $output;
    }
    
    function social_logo($network) {
        $img=theme_url("img/$network.png");
        return "<img height=\"20\" width=\"20\" src=\"$img\" alt=\"$network/\"/>";
    }
    
    function social_account($network) {
        if ($network == "framasphere"){
            return site_meta($network.'_id', '');
        }
        return site_meta($network, '');
    }
    
    function social_list($properties) {
        $NETWORKS_URLS = array (
            'mail' => 'mailto:',
            'github' => 'https://github.com/',
            'framasphere' => 'https://framasphere.org/people/',
            'mastodon' => 'https://framapiaf.org/',
            'facebook' => 'https://facebook.com/',
            'twitter' => 'https://twitter.com/',
        );
        echo "<ul ".$properties.">";
        foreach ($NETWORKS_URLS as $network => $network_url){
            if(site_meta($network, '')){
                echo '<li><a href="'.$network_url.social_account($network).'">'.
                    social_logo($network).' '.site_meta($network, '').'</a></li>';
                }
        }
        echo "</ul>";
    }
    
    function total_articles() {
    	return Post::where(Base::table('posts.status'), '=', 'published')->count();
    }
    
    function article_img_url($slug){
    	return '/img/blog/'.$slug;
    }
    
    function article_img_ext($slug){
        $extensions = array( "png", "jpg", "jpeg", "gif" );
        foreach($extensions as $ext){
            foreach(array($ext, strtoupper($ext)) as $e){
    	        if (file_exists('.'.article_img_url($slug).'.'.$e)){
                    return $e;
                }
            }
        }
        return "";
    }
    
    function article_img($slug){
        $ext = article_img_ext($slug);
        if($ext != ""){
    		echo '<img style="max-width:300px;max-height:200px" src="'.article_img_url($slug).'.'.$ext.'" />';
    	}
    }
    
    function print_item($item, $class){
        echo '<li class="'.$class.'">';
        echo '<a href="'.menu_url($item).'" title="'.menu_title($item).'">';
        echo menu_name($item).' </a></li>';
    }
    
    function build_menu($parent, $tree){
        foreach($tree[$parent] as $i => $item){
            $class=menu_active($item)&&$parent==0?'active':'';
            if(array_key_exists($item->id, $tree)){
                echo '<li class="dropdown '.$class.'"><a class="dropdown-toggle" data-toggle="dropdown" href="#">'.menu_name($item).'<span class="caret"></span></a>';
                echo '<ul class="dropdown-menu">';
                build_menu($item->id, $tree);
                echo '</ul>';
                echo '</li>';
            }else{
                if(menu_name($item) == "Blog"){
                    echo '<li class="dropdown '.$class.'"><a class="dropdown-toggle" data-toggle="dropdown" href="#">'.menu_name($item).'<span class="caret"></span></a>';
                    echo '<ul class="dropdown-menu">';
                    echo '<li><a href="'.menu_url($item).'" title="Tous les articles">';
                    echo 'Tous les articles </a></li>';
                    while(categories()){
                        if(category_count() > 0 ){
                            echo '<li><a href="'.category_url().'" title="'.category_title().'">';
                            echo category_title().' </a></li>';
                        }
                    }
                    echo '</ul>';
                    echo '</li>';
                }else{
                    print_item($item, $class);
                }
            }
        }
    }
    
    function menu_tree(){
        $tree=array();
    
        while(menu_items()){
            $item=Registry::get('menu_item');
            $parent=$item->parent;
            if(!array_key_exists($parent, $tree)){
                $tree[$parent] = array();
            }
            array_push($tree[$parent], $item);
        }
        return build_menu(0, $tree);
    }
    function og_headers(){
        if(article_title() == ""){
    	    $title=page_title();
    	    $type="website";
    	    $url=e(current_url());
    	    $img_url=theme_url('img/logo.png');
    	    $description=page_description();
        }else{
    	    $title=article_title();
            $type="article";
    	    $url=e(article_url());
    	    $img_url=article_img_url(article_slug()).'.'.article_img_ext(article_slug());
    	    $description=article_description();
        }
        print('<meta property="og:title" content="'.$title."\">\n");
        print('<meta property="og:type" content="'.$type."\">\n");
        print('<meta property="og:url" content="'.full_url($url)."\">\n");
        print('<meta property="og:image" content="'.full_url($img_url)."\">\n");
        print('<meta property="og:site_name" content="'.site_name()."\">\n");
        print('<meta property="og:description" content="'.$description."\">\n");
    
    }