Skip to content
Snippets Groups Projects
Select Git revision
  • 364947b8bc161339c54c9733acb512f4bc6b444e
  • mui5-annotation-on-video-stable default
  • get_setter_canvasSizeInformations
  • fix-error-div-into-p
  • annotation-on-video-v2
  • detached
  • annotation-on-video-r17
  • mui5
  • mui5-react-18
  • jacob-test
  • annotation-on-video protected
  • master
  • test-antoinev1
  • 20-fetch-thumbnail-on-annotation
  • add-research-field
  • Save
  • add-plugin
  • 14-wip-no-seek-to
  • 14-bug-on-video-time-control
  • 9_wip_videotests
  • _upgrade_material_ui
  • latest-tetras-16
  • v3.3.0
  • v3.2.0
  • v3.1.1
  • v3.1.0
  • v3.0.0
  • v3.0.0-rc.7
  • v3.0.0-rc.6
  • v3.0.0-rc.5
  • v3.0.0-rc.4
  • v3.0.0-rc.3
  • v3.0.0-rc.2
  • v3.0.0-rc.1
  • v3.0.0-beta.10
  • v3.0.0-beta.9
  • v3.0.0-beta.8
  • v3.0.0-beta.7
  • v3.0.0-beta.6
  • v3.0.0-beta.5
  • v3.0.0-beta.3
41 results

webpack.config.js

Blame
  • functions.php 4.98 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)?'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{
                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() == ""){
    	    print('<meta property="og:title" content="'.page_title().'">');
    	    print('<meta property="og:type" content="website">');
    	    print('<meta property="og:url" content="'.e(current_url()).'">');
    	    print('<meta property="og:image" content="'.theme_url('img/logo.svg').'">');
    	    print('<meta property="og:site_name" content="'.site_name().'">');
    	    print('<meta property="og:description" content="'.page_description().'">');
        }else{
    	    print('<meta property="og:title" content="'.article_title().'">');
    	    print('<meta property="og:type" content="article">');
    	    print('<meta property="og:url" content="'.e(article_url()).'">');
    	    print('<meta property="og:image" content="'.article_img_url(article_slug()).'">');
    	    print('<meta property="og:site_name" content="'.site_name().'">');
    	    print('<meta property="og:description" content="'.article_description().'">');
        }
    }