Compare commits

...

2 Commits

Author SHA1 Message Date
jorge 4049c87243 first commit 2024-01-09 16:13:20 +01:00
jorge d55434280c modified git ignore 2024-01-09 16:03:38 +01:00
2629 changed files with 403561 additions and 40 deletions

68
.gitignore vendored
View File

@ -1,53 +1,39 @@
# ---> WordPress
# Wordpress - ignore core, configuration, examples, uploads and logs.
# https://github.com/github/gitignore/blob/main/WordPress.gitignore
# ignore everything in the root except the "wp-content" directory.
#!wp-content/
# Core
#
# Note: if you want to stage/commit WP core files
# you can delete this whole section/until Configuration.
/wp-admin/
/wp-content/index.php
/wp-content/languages
/wp-content/plugins/index.php
/wp-content/themes/index.php
/wp-includes/
/index.php
/license.txt
/readme.html
/wp-*.php
/xmlrpc.php
# ignore everything in the "wp-content" directory, except:
# "mu-plugins", "plugins", "themes" directory
#wp-content/*
#!wp-content/mu-plugins/
#!wp-content/plugins/
#!wp-content/themes/
# Configuration
wp-config.php
# ignore these plugins
#wp-content/plugins/hello.php
# Example themes
/wp-content/themes/twenty*/
# ignore specific themes
#wp-content/themes/twenty*/
# Example plugin
/wp-content/plugins/hello.php
# ignore node dependency directories
node_modules/
# Uploads
/wp-content/uploads/
# Log files
# ignore log files and databases
*.log
*.sql
*.sqlite
# ignore local personal files
*.geany
.vscode/
.DS_Store
theme/
_gitignore*
# htaccess
/.htaccess
# All plugins
#
# Note: If you wish to whitelist plugins,
# uncomment the next line
#/wp-content/plugins
# All themes
#
# Note: If you wish to whitelist themes,
# uncomment the next line
#/wp-content/themes
# ---> Node
# Logs
logs
*.log
@ -179,3 +165,7 @@ dist
.yarn/install-state.gz
.pnp.*
# linting files
.eslintrc
.stylelintrc.json

60
404.php Normal file
View File

@ -0,0 +1,60 @@
<?php
/**
* The template for displaying 404 pages (not found)
*
* @link https://codex.wordpress.org/Creating_an_Error_404_Page
*
* @package Xarxaprod_theme
*/
get_header();
?>
<main id="primary" class="site-main">
<section class="error-404 not-found">
<header class="page-header">
<h1 class="page-title"><?php esc_html_e( 'Oops! That page can&rsquo;t be found.', 'xarxarprod' ); ?></h1>
</header><!-- .page-header -->
<div class="page-content">
<p><?php esc_html_e( 'It looks like nothing was found at this location. Maybe try one of the links below or a search?', 'xarxarprod' ); ?></p>
<?php
get_search_form();
the_widget( 'WP_Widget_Recent_Posts' );
?>
<div class="widget widget_categories">
<h2 class="widget-title"><?php esc_html_e( 'Most Used Categories', 'xarxarprod' ); ?></h2>
<ul>
<?php
wp_list_categories(
array(
'orderby' => 'count',
'order' => 'DESC',
'show_count' => 1,
'title_li' => '',
'number' => 10,
)
);
?>
</ul>
</div><!-- .widget -->
<?php
/* translators: %1$s: smiley */
$xarxaprod_archive_content = '<p>' . sprintf( esc_html__( 'Try looking in the monthly archives. %1$s', 'xarxarprod' ), convert_smilies( ':)' ) ) . '</p>';
the_widget( 'WP_Widget_Archives', 'dropdown=1', "after_title=</h2>$xarxaprod_archive_content" );
the_widget( 'WP_Widget_Tag_Cloud' );
?>
</div><!-- .page-content -->
</section><!-- .error-404 -->
</main><!-- #main -->
<?php
get_footer();

View File

@ -1,3 +1,41 @@
# xarxaprod-wp-theme
Them for the Xarxaprod.cat WordPress website.
Them for the Xarxaprod.cat WordPress website.
### Theme's details
- Contributors: jorge-vitrubio.net
- Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
- Requires at least: 4.5
- Tested up to: 6.4.2
- Requires PHP: 7.0
- Stable tag: 1.0.0
- License: GNU General Public License v3 or later
- License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
## Description
A WordPress theme for the Xarxarprod.cat
## Installation
1. In your admin panel, go to Appearance > Themes and click the Add New button.
2. Click Upload Theme and Choose File, then select the theme's .zip file. Click Install Now.
3. Click Activate to use your new theme right away.
## Frequently Asked Questions
### Does this theme support any plugins?
Xarxarprod theme includes support for Xarxarprod plugin.
## Changelog
### 1.0 - 29th decembre 2023
- Initial release
## Credits
- Developed by Jorge Vitoria (vitrubio.net) on top of the design by Eudald Van der Pla (vanderpla.com)
- Based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc., [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html)
- normalize.css https://necolas.github.io/normalize.css/, (C) 2012-2018 Nicolas Gallagher and Jonathan Neal, [MIT](https://opensource.org/licenses/MIT)

1753
adminstyles.css Normal file

File diff suppressed because it is too large Load Diff

47
adminstyles.css.map Normal file

File diff suppressed because one or more lines are too long

106
archive-ofisuport-ajut.php Normal file
View File

@ -0,0 +1,106 @@
<?php
/**
* The template for displaying archive custom post type ajut
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Xarxaprod_theme
*/
get_header();
?>
<main id="primary" class="site-main">
<section id="filteredfunds" class="xarxaprod-filtered-funds xarxaprod-ajuts-filtrats">
<aside id="fundsfilter" class="xarxaprod-filter-funds xarxaprod-fitre-ajuts">
<div id="arhive-filters" class="xarxaprod-filters">
<?php
// output all possible values of a checkbox
$groupkey = "group_63ab636898703"; // write here the key for the group of fields from acf
if( $groupkey){
//echo '<h6>check the groupkey <span style="color: #00b">' . $groupkey . '</span></h6>';
$groupkey_fields = acf_get_fields($groupkey);
foreach( $groupkey_fields as $field_key ) {
if( $field_key['type'] == 'checkbox' ){
//echo '<span style="color: #00b">' . ($field_key['key']) . '</span><br/>';
//echo '<span style="color: #00b">' . ($field_key['label']) . '</span><br/>';
//echo '<span style="color: #00b">' . ($field_key['name']) . '</span><br/>';
// https://wordpress.stackexchange.com/a/102915
//$field_key = "field_XXXXXX";// the acf field key unic numbers
$field_key = $field_key['key'];
$fields = get_field_object($field_key);
if( $fields )
{
// check for values in url
foreach( $GLOBALS['my_query_filters'] as $key => $fieldname ):
// set value if available
if( isset($_GET[ $fieldname ]) ) {
$filteredvalues['value'] = explode(',', $_GET[ $fieldname ]);
};
// construct the checkboxes
if( $fieldname == $fields['name']) {
echo '<nav id="fund-filter" class="xarxaprod-filter ' . $fields['name'] . '">' ;
echo '<h5>' . $fields['label'] . '</h5>';
echo '<ul>';
foreach( $fields['choices'] as $choicevalue => $choicelabel ) {
echo '<li>';
echo '<input type="checkbox" ';
echo ' value="' . $choicevalue . '" ';
if( in_array($choicevalue,$filteredvalues['value']) ):
echo ' checked="checked" ';
endif;
echo ' />';
echo $choicelabel;
echo '</li>';
}
echo '</ul>';
echo '</nav>';
};
// end of construct checkboxes
endforeach;
// end check for values in url
}
};//end if type checkbox
};//end foreach groupkey field
};//end if groupkey
?>
<?php //endforeach; ?>
</div>
</aside>
<content class="archive-posts <?php xarxaprod_class_posttype(); ?>">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post();
get_template_part( 'template-parts/section', 'eachpost' );
endwhile;
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
</content>
</section>
</main><!-- #main -->
<?php
get_footer();

47
archive.php Normal file
View File

@ -0,0 +1,47 @@
<?php
/**
* The template for displaying archive pages
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Xarxaprod_theme
*/
get_header();
?>
<main id="primary" class="site-main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
</header><!-- .page-header -->
<content class="archive-posts <?php xarxaprod_class_posttype(); ?>">
<?php
/* Start the Loop */
while ( have_posts() ) :
the_post();
/*
* Include the Post-Type-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Type name) and that will be used instead.
*/
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
echo '</content>';//end content ajuts
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
</main><!-- #main -->
<?php
get_sidebar();
get_footer();

File diff suppressed because one or more lines are too long

235
assets/css/style-login.css Normal file
View File

@ -0,0 +1,235 @@
body {
background:#fff;
min-width:0;
color:#111;
font-family:"din-light",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
font-size:0.9em;
line-height:1.4;
}
a {
color:#444;
font-family:"din-light",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
transition-property:border,background,color;
transition-duration:.05s;
transition-timing-function:ease-in-out
}
a:active,
a:hover {
color:#111;
}
a:focus {
color:#222;
box-shadow: none;
}
p {
line-height:1.5;
}
.login #login_error,
.login .message,
.login .success {
border-left:4px solid #333;
padding:12px;
margin-left:0;
margin-bottom:20px;
background-color:#fff;
box-shadow:none;
}
.login .success {
border-left-color:#69ed82;
}
.login #login_error {
border-left-color:#ff686e;
}
#loginform p.submit,
.login-action-lostpassword p.submit {
border:none;
}
.login * {
}
.login .input::-ms-clear {
}
.login .pw-weak {
}
.login .button.wp-hide-pw {
}
.login .button.wp-hide-pw:hover {
}
.login .button.wp-hide-pw:focus {
border-color:#333;
box-shadow:none;
outline:none;
}
.login .button.wp-hide-pw:active {
}
.login .button.wp-hide-pw .dashicons {
}
.login .wp-pwd {
}
.no-js .hide-if-no-js {
}
.login form {
background:#fff;
border:none;
box-shadow: none;
}
.login form.shake {
}
@keyframes shake {
}
@media (prefers-reduced-motion:reduce) {
.login form.shake {
animation:none;
transform:none
}
}
.login-action-confirm_admin_email #login {
}
@media screen and (max-width:782px) {
.login-action-confirm_admin_email #login {
}
}
.login form .forgetmenot {
}
.login .button-primary {
}
.login .reset-pass-submit {
}
.login .reset-pass-submit .button {
}
.login .admin-email-confirm-form .submit {
}
.admin-email__later {
}
.login form p.admin-email__details {
}
.login h1.admin-email__heading {
border-bottom: none;
color:#333;
}
.admin-email__actions div {
}
.login .admin-email__actions .button-primary {
}
#login form p {
}
#login form p.submit {
}
.login label {
}
.login .forgetmenot label,
.login .pw-weak label {
}
.login h1 {
}
.login h1 a {
background-size:auto;
background-position:center top;
background-repeat:no-repeat;
color:#3c434a;
height:84px;
font-size:20px;
font-weight:400;
line-height:1.3;
margin:0 auto 25px;
padding:0;
text-decoration:none;
width:100%;
text-indent:-9999px;
outline:0;
overflow:hidden;
display:block
}
#login {
}
.login #backtoblog,
.login #nav {
}
.login #nav {
}
#backtoblog {
}
.login #backtoblog a,
.login #nav a {
color:#333;
}
.login #backtoblog a:hover,
.login #nav a:hover,
.login h1 a:hover {
color:#111;
}
.login #backtoblog a:focus,
.login #nav a:focus,
.login h1 a:focus {
color:#222;
}
.login .privacy-policy-page-link {
}
.login form .input,
.login input[type=password],
.login input[type=text] {
}
.login input.password-input {
font-family:Consolas,Monaco,monospace
}
.js.login input.password-input,
.js.login-action-rp form .input,
.js.login-action-rp input[type=text] {
}
.login form .input,
.login form input[type=checkbox],
.login input[type=text] {
background:#fff;
}
.js.login-action-rp input[type=password],
.js.login-action-rp input[type=text] {
}
.login #pass-strength-result {
}
body.interim-login {
}
.interim-login #login {
}
.interim-login.login h1 a {
}
.interim-login #login_error,
.interim-login.login .message {
}
.interim-login.login form {
}
.screen-reader-text,
.screen-reader-text span {
}
input::-ms-reveal {
}
#language-switcher {
}
#language-switcher select {
}
.language-switcher {
}
.language-switcher label {
}
.language-switcher label .dashicons {
}
.login .language-switcher .button-primary {
}
@media screen and (max-height:550px) {
#login {
}
#language-switcher {
}
}
@media screen and (max-width:782px) {
.interim-login input[type=checkbox] {
}
.interim-login input[type=checkbox]:checked:before {
}
#language-switcher label,
#language-switcher select {
}
}
@media screen and (max-width:400px) {
.login .language-switcher .button-primary {
}
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

77
comments.php Normal file
View File

@ -0,0 +1,77 @@
<?php
/**
* The template for displaying comments
*
* This is the template that displays the area of the page that contains both the current comments
* and the comment form.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Xarxaprod_theme
*/
/*
* If the current post is protected by a password and
* the visitor has not yet entered the password we will
* return early without loading the comments.
*/
if ( post_password_required() ) {
return;
}
?>
<div id="comments" class="comments-area">
<?php
// You can start editing here -- including this comment!
if ( have_comments() ) :
?>
<h2 class="comments-title">
<?php
$xarxaprod_comment_count = get_comments_number();
if ( '1' === $xarxaprod_comment_count ) {
printf(
/* translators: 1: title. */
esc_html__( 'One thought on &ldquo;%1$s&rdquo;', 'xarxarprod' ),
'<span>' . wp_kses_post( get_the_title() ) . '</span>'
);
} else {
printf(
/* translators: 1: comment count number, 2: title. */
esc_html( _nx( '%1$s thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', $xarxaprod_comment_count, 'comments title', 'xarxarprod' ) ),
number_format_i18n( $xarxaprod_comment_count ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'<span>' . wp_kses_post( get_the_title() ) . '</span>'
);
}
?>
</h2><!-- .comments-title -->
<?php the_comments_navigation(); ?>
<ol class="comment-list">
<?php
wp_list_comments(
array(
'style' => 'ol',
'short_ping' => true,
)
);
?>
</ol><!-- .comment-list -->
<?php
the_comments_navigation();
// If comments are closed and there are comments, let's leave a little note, shall we?
if ( ! comments_open() ) :
?>
<p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'xarxarprod' ); ?></p>
<?php
endif;
endif; // Check for have_comments().
comment_form();
?>
</div><!-- #comments -->

40
composer.json Normal file
View File

@ -0,0 +1,40 @@
{
"name": "automattic/underscores",
"type": "wordpress-theme",
"description": "Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for.",
"keywords": [
"WordPress",
"Themes"
],
"homepage": "https://github.com/Automattic/_s",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "Contributors",
"homepage": "https://github.com/Automattic/_s/graphs/contributors"
}
],
"require": {
"php": ">=5.6"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
"wptrt/wpthemereview": "^0.2.1",
"php-parallel-lint/php-parallel-lint": "^1.2.0",
"wp-cli/i18n-command": "^2.2.5"
},
"scripts": {
"lint:wpcs": "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs",
"lint:php": "@php ./vendor/bin/parallel-lint --exclude .git --exclude vendor .",
"make-pot": "wp i18n make-pot . languages/xarxarprod.pot"
},
"support": {
"issues": "https://github.com/Automattic/_s/issues",
"source": "https://github.com/Automattic/_s"
},
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
}
}
}

1188
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

35
footer.php Normal file
View File

@ -0,0 +1,35 @@
<?php
/**
* The template for displaying the footer
*
* Contains the closing of the #content div and all content after.
*
* @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
*
* @package Xarxaprod_theme
*/
?>
<footer id="colophon" class="site-footer">
<div class="site-info">
<?php dynamic_sidebar( 'footer' ); ?>
<!--a href="<?php //echo esc_url( __( 'https://wordpress.org/', 'xarxarprod' ) ); ?>">
<?php
/* translators: %s: CMS name, i.e. WordPress. */
//printf( esc_html__( 'Proudly powered by %s', 'xarxarprod' ), 'WordPress' );
?>
</a-->
<!--span class="sep"></span-->
<?php
/* translators: 1: Theme name, 2: Theme author. */
//printf( esc_html__( 'Theme: %1$s by %2$s.', 'xarxarprod' ), 'xarxarprod', '<a href="https://vitrubio.net">jorge-vitrubio.net</a>' );
?>
</div><!-- .site-info -->
</footer><!-- #colophon -->
</div><!-- #page -->
<?php wp_footer(); ?>
</body>
</html>

189
functions.php Normal file
View File

@ -0,0 +1,189 @@
<?php
/**
* Xarxarprod theme functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package Xarxaprod_theme
*/
if ( ! defined( '_S_VERSION' ) ) {
// Replace the version number of the theme on each release.
define( '_S_VERSION', '1.0.0' );
}
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support for post thumbnails.
*/
function xarxaprod_setup() {
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
* If you're building a theme based on Xarxarprod theme, use a find and replace
* to change 'xarxarprod' to the name of your theme in all the template files.
*/
load_theme_textdomain( 'xarxarprod', get_template_directory() . '/languages' );
// Add default posts and comments RSS feed links to head.
add_theme_support( 'automatic-feed-links' );
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded <title> tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
// add_theme_support( 'post-thumbnails' );
// This theme uses wp_nav_menu()
register_nav_menus(
array(
'menu-1' => esc_html__( 'Primary', 'xarxarprod' ),
'menu-2' => esc_html__( 'Secondary', 'xarxarprod' ),
)
);
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support(
'html5',
array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'style',
'script',
)
);
// Set up the WordPress core custom background feature.
//
//add_theme_support(
// 'custom-background',
// apply_filters(
// 'xarxaprod_custom_background_args',
// array(
// 'default-color' => 'ffffff',
// 'default-image' => '',
// )
// )
//);
// Add theme support for selective refresh for widgets.
add_theme_support( 'customize-selective-refresh-widgets' );
/**
* Add support for core custom logo.
*
* @link https://codex.wordpress.org/Theme_Logo
*/
add_theme_support(
'custom-logo',
array(
'height' => 252,
'width' => 125,
'flex-width' => true,
'flex-height' => true,
)
);
}
add_action( 'after_setup_theme', 'xarxaprod_setup' );
/**
* Set the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $content_width
*/
function xarxaprod_content_width() {
$GLOBALS['content_width'] = apply_filters( 'xarxaprod_content_width', 640 );
}
add_action( 'after_setup_theme', 'xarxaprod_content_width', 0 );
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
require get_template_directory() . '/inc/widgets-register.php';
/**
* Enqueue scripts and styles.
*/
function xarxaprod_scripts() {
wp_enqueue_style( 'xarxaprod-style', get_stylesheet_uri(), array(), _S_VERSION );
wp_style_add_data( 'xarxaprod-style', 'rtl', 'replace' );
wp_enqueue_script( 'xarxaprod-navigation', get_template_directory_uri() . '/js/navigation.js', array(), _S_VERSION, true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'xarxaprod_scripts' );
/**
* Implement the Custom Header feature.
*/
require get_template_directory() . '/inc/custom-header.php';
/**
* Custom template tags for this theme.
*/
require get_template_directory() . '/inc/template-tags.php';
/**
* Functions which enhance the theme by hooking into WordPress.
*/
require get_template_directory() . '/inc/template-functions.php';
/**
* Customizer additions.
*/
require get_template_directory() . '/inc/customizer.php';
/**
* Load Jetpack compatibility file.
*/
if ( defined( 'JETPACK__VERSION' ) ) {
require get_template_directory() . '/inc/jetpack.php';
}
/**
* Functions to personalize login screen
*/
require get_template_directory() . '/inc/login-functions.php';
/**
* Functions to personalize the_archive_title() function
*/
require get_template_directory() . '/inc/archive-title.php';
/**
* Functions to add admin styles
*/
require get_template_directory() . '/inc/admin-style.php';
/**
* Function to add filter in xarxaprod-ajut custom post
*/
// moved to plugin on 2023 01 05
//require get_template_directory() . '/inc/xarxaprod-ajut-filter.php';

84
header.php Normal file
View File

@ -0,0 +1,84 @@
<?php
/**
* The header for our theme
*
* This is the template that displays all of the <head> section and everything up until <div id="content">
*
* @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
*
* @package Xarxaprod_theme
*/
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="https://gmpg.org/xfn/11">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<div id="page" class="site">
<a class="skip-link screen-reader-text" href="#primary"><?php esc_html_e( 'Skip to content', 'xarxarprod' ); ?></a>
<header id="masthead" class="site-header">
<div class="main">
<div class="site-branding">
<?php
the_custom_logo();
if ( is_front_page() && is_home() ) :
?>
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
<?php
else :
?>
<p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
<?php
endif;
$xarxaprod_description = get_bloginfo( 'description', 'display' );
if ( $xarxaprod_description || is_customize_preview() ) :
?>
<p class="site-description"><?php echo $xarxaprod_description; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
<?php endif; ?>
</div><!-- .site-branding -->
<nav id="site-navigation-main" class="main-navigation">
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false"><?php esc_html_e( 'Menu XarxaProd', 'xarxarprod' ); ?></button>
<?php
wp_nav_menu(
array(
'theme_location' => 'menu-1',
'menu_id' => 'primary-menu',
)
);
?>
</nav><!--primary #site-navigation -->
</div>
<div class="secondary">
<nav id="site-navigation-secondary" class="site-navigation secondary-navigation toogle-secondary-navigation">
<legend class="hide-content">menu</legend>
<input id="hide-menu-mobile" class="hide-not-mobile toogle" name="toogle" type="radio">
<label for="show-menu-mobile" class="hide-not-mobile toogle-show"><span class="hide-content">open</span></label>
<input id="show-menu-mobile" class="hide-not-mobile toogle" name="toogle" type="radio">
<div class="toogled-menu">
<label for="hide-menu-mobile" class="hide-not-mobile toogle-hide"><span class="hide-content">close</span></label>
<?php // here content to hide or show ?>
<?php
wp_nav_menu(
array(
'theme_location' => 'menu-2',
'menu_id' => 'secondary-menu',
)
);
?>
</div><!--toogled-menu-->
</nav><!--secondary #site-navigation -->
<?php the_header_image_tag(); // header image to show below menus before title ?>
</div><!--secondary-->
</header><!-- #masthead -->

11
inc/admin-style.php Normal file
View File

@ -0,0 +1,11 @@
<?php
/**
* Sets up theme defaults and registers support for various WordPress features.
*/
// Update CSS within in Admin
function xarxaprod_admin_style() {
wp_enqueue_style( 'admin-styles', get_stylesheet_directory_uri() . '/assets/css/adminstyles.css' );
// wp_enqueue_style( 'xarxaprod-theme-styles', get_template_directory_uri().'/style.css');
}
add_action('admin_enqueue_scripts', 'xarxaprod_admin_style');

26
inc/archive-title.php Normal file
View File

@ -0,0 +1,26 @@
<?php
/**
* Archive title customization.
* Get rid of the "Category:" "Tag:" "Author:" "Archives:" lables in
*
* https://developer.wordpress.org/reference/functions/get_the_archive_title/#comment-1807
*/
function xarxaprod_archive_title( $title ) {
if ( is_category() ) {
$title = single_cat_title( '', false );
} elseif ( is_tag() ) {
$title = single_tag_title( '', false );
} elseif ( is_author() ) {
$title = '<span class="vcard">' . get_the_author() . '</span>';
} elseif ( is_post_type_archive() ) {
$title = post_type_archive_title( '', false );
} elseif ( is_tax() ) {
$title = single_term_title( '', false );
}
return $title;
}
add_filter( 'get_the_archive_title', 'xarxaprod_archive_title' );

78
inc/custom-header.php Normal file
View File

@ -0,0 +1,78 @@
<?php
/**
* Sample implementation of the Custom Header feature
*
* You can add an optional custom header image to header.php like so ...
*
<?php the_header_image_tag(); ?>
*
* @link https://developer.wordpress.org/themes/functionality/custom-headers/
*
* @package Xarxaprod_theme
*/
/**
* Set up the WordPress core custom header feature.
*
* @uses xarxaprod_header_style()
*/
function xarxaprod_custom_header_setup() {
add_theme_support(
'custom-header',
apply_filters(
'xarxaprod_custom_header_args',
array(
'default-image' => '',
'default-text-color' => '000000',
'width' => 1000,
'height' => 250,
'flex-height' => true,
'wp-head-callback' => 'xarxaprod_header_style',
)
)
);
}
add_action( 'after_setup_theme', 'xarxaprod_custom_header_setup' );
if ( ! function_exists( 'xarxaprod_header_style' ) ) :
/**
* Styles the header image and text displayed on the blog.
*
* @see xarxaprod_custom_header_setup().
*/
function xarxaprod_header_style() {
$header_text_color = get_header_textcolor();
/*
* If no custom options for text are set, let's bail.
* get_header_textcolor() options: Any hex value, 'blank' to hide text. Default: add_theme_support( 'custom-header' ).
*/
if ( get_theme_support( 'custom-header', 'default-text-color' ) === $header_text_color ) {
return;
}
// If we get this far, we have custom styles. Let's do this.
?>
<style type="text/css">
<?php
// Has the text been hidden?
if ( ! display_header_text() ) :
?>
.site-title,
.site-description {
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
}
<?php
// If the user has set a custom color for the text use that.
else :
?>
.site-title a,
.site-description {
color: #<?php echo esc_attr( $header_text_color ); ?>;
}
<?php endif; ?>
</style>
<?php
}
endif;

61
inc/customizer.php Normal file
View File

@ -0,0 +1,61 @@
<?php
/**
* Xarxarprod theme Theme Customizer
*
* @package Xarxaprod_theme
*/
/**
* Add postMessage support for site title and description for the Theme Customizer.
*
* @param WP_Customize_Manager $wp_customize Theme Customizer object.
*/
function xarxaprod_customize_register( $wp_customize ) {
$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
$wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage';
if ( isset( $wp_customize->selective_refresh ) ) {
$wp_customize->selective_refresh->add_partial(
'blogname',
array(
'selector' => '.site-title a',
'render_callback' => 'xarxaprod_customize_partial_blogname',
)
);
$wp_customize->selective_refresh->add_partial(
'blogdescription',
array(
'selector' => '.site-description',
'render_callback' => 'xarxaprod_customize_partial_blogdescription',
)
);
}
}
add_action( 'customize_register', 'xarxaprod_customize_register' );
/**
* Render the site title for the selective refresh partial.
*
* @return void
*/
function xarxaprod_customize_partial_blogname() {
bloginfo( 'name' );
}
/**
* Render the site tagline for the selective refresh partial.
*
* @return void
*/
function xarxaprod_customize_partial_blogdescription() {
bloginfo( 'description' );
}
/**
* Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
*/
function xarxaprod_customize_preview_js() {
wp_enqueue_script( 'xarxaprod-customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), _S_VERSION, true );
}
add_action( 'customize_preview_init', 'xarxaprod_customize_preview_js' );

67
inc/jetpack.php Normal file
View File

@ -0,0 +1,67 @@
<?php
/**
* Jetpack Compatibility File
*
* @link https://jetpack.com/
*
* @package Xarxaprod_theme
*/
/**
* Jetpack setup function.
*
* See: https://jetpack.com/support/infinite-scroll/
* See: https://jetpack.com/support/responsive-videos/
* See: https://jetpack.com/support/content-options/
*/
function xarxaprod_jetpack_setup() {
// Add theme support for Infinite Scroll.
add_theme_support(
'infinite-scroll',
array(
'container' => 'main',
'render' => 'xarxaprod_infinite_scroll_render',
'footer' => 'page',
)
);
// Add theme support for Responsive Videos.
add_theme_support( 'jetpack-responsive-videos' );
// Add theme support for Content Options.
add_theme_support(
'jetpack-content-options',
array(
'post-details' => array(
'stylesheet' => 'xarxaprod-style',
'date' => '.posted-on',
'categories' => '.cat-links',
'tags' => '.tags-links',
'author' => '.byline',
'comment' => '.comments-link',
),
'featured-images' => array(
'archive' => true,
'post' => true,
'page' => true,
),
)
);
}
add_action( 'after_setup_theme', 'xarxaprod_jetpack_setup' );
if ( ! function_exists( 'xarxaprod_infinite_scroll_render' ) ) :
/**
* Custom render function for Infinite Scroll.
*/
function xarxaprod_infinite_scroll_render() {
while ( have_posts() ) {
the_post();
if ( is_search() ) :
get_template_part( 'template-parts/content', 'search' );
else :
get_template_part( 'template-parts/content', get_post_type() );
endif;
}
}
endif;

39
inc/login-functions.php Normal file
View File

@ -0,0 +1,39 @@
<?php
/**
* Add a custom logo and styles in login page
*
* https://developer.wordpress.org/reference/functions/the_custom_logo/#comment-2037
*/
// https://codex.wordpress.org/Customizing_the_Login_Form#Change_the_Login_Logo
function xarxaprod_login_logo() {
if ( has_custom_logo() ) :
$image = wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), 'full' );
?>
<style type="text/css">
.login h1 a {
background-image: url("<?php echo esc_url( $image[0] ); ?>") !important;
}
</style>
<?php
endif;
}
add_action( 'login_enqueue_scripts', 'xarxaprod_login_logo' );
function xarxaprod_login_logo_url() {
return home_url();
}
add_filter( 'login_headerurl', 'xarxaprod_login_logo_url' );
function xarxaprod_login_logo_url_title() {
return 'Your Site Name and Info';
}
add_filter( 'login_headertext', 'xarxaprod_login_logo_url_title' );
// https://codex.wordpress.org/Customizing_the_Login_Form#Styling_Your_Login
function xarxaprod_login_stylesheet() {
wp_enqueue_style( 'custom-login', get_stylesheet_directory_uri() . '/assets/css/style-login.css' );
// wp_enqueue_script( 'custom-login', get_stylesheet_directory_uri() . '/assets/css/style-login.js' );
}
add_action( 'login_enqueue_scripts', 'xarxaprod_login_stylesheet' );

View File

@ -0,0 +1,42 @@
<?php
/**
* Makes a filter for the custom post type ajut and its custom fields
*/
// action
add_action('pre_get_posts', 'my_pre_get_posts');
function my_pre_get_posts( $query ) {
// bail early if is in admin
if( is_admin() ) { return; }
// allow the url to alter the query
if( isset($_GET['os_fund_target']) )
{
// get original meta query
$meta_query = [];
$meta_query[] = array('relation' => 'OR');
$meta_query[] = $query->get('meta_query');
$fieldsearchvalues= explode(',', $_GET['os_fund_target']);
foreach( $fieldsearchvalues as $fieldsearchvalue ){
$os_search_value = $fieldsearchvalue; //'entitat-publica'; // whatever
$os_field_value = sprintf( '^%1$s$|s:%2$u:"%1$s";', $os_search_value, strlen( $os_search_value ) );
// add aur meta query to the original meta queries
$meta_query[] = array(
array(
'key' => 'os_fund_target',
'value' => $os_field_value,
'compare' => 'REGEXP',
),
);
}
// update the meta query arguments
$query->set('meta_query', $meta_query);
}
//always return
return;
}

View File

@ -0,0 +1,65 @@
<?php
/**
* Functions which enhance the theme by hooking into WordPress
*
* @package Xarxaprod_theme
*/
/**
* Adds custom classes to the array of body classes.
*
* @param array $classes Classes for the body element.
* @return array
*/
function xarxaprod_body_classes( $classes ) {
// Adds a class of hfeed to non-singular pages.
if ( ! is_singular() ) {
$classes[] = 'hfeed';
}
// Adds a class of no-sidebar when there is no sidebar present.
if ( ! is_active_sidebar( 'sidebar-funds' ) ) {
$classes[] = 'no-sidebar';
}
return $classes;
}
add_filter( 'body_class', 'xarxaprod_body_classes' );
/**
* Add a pingback url auto-discovery header for single posts, pages, or attachments.
*/
function xarxaprod_pingback_header() {
if ( is_singular() && pings_open() ) {
printf( '<link rel="pingback" href="%s">', esc_url( get_bloginfo( 'pingback_url' ) ) );
}
}
add_action( 'wp_head', 'xarxaprod_pingback_header' );
/**
* Detect if the Xarxarprod "xarxarprod" plugin is active
*/
function xarxaprod_plugin_active() {
// Detect plugin. For use on Front End only.
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// check for plugin using plugin name
if ( is_plugin_active( 'xarxarprod-wp-plugin/xarxaprod-wp-plugin.php' ) ) {
//plugin is activated do
}
//do stuff here
} //closing if is_plugin_active
//add_action( 'wp_head', 'xarxaprod_plugin_active' );
/**
* Echo the post type slug
*/
function xarxaprod_class_posttype (){
if( is_post_type_archive( array('xarxaprod-ajut') )) {
echo 'archive-custom-post-type-';
printf(get_post_type_object( get_post_type() )->rewrite['slug'] );
}
}

165
inc/template-tags.php Normal file
View File

@ -0,0 +1,165 @@
<?php
/**
* Custom template tags for this theme
*
* Eventually, some of the functionality here could be replaced by core features.
*
* @package Xarxaprod_theme
*/
if ( ! function_exists( 'xarxaprod_posted_on' ) ) :
/**
* Prints HTML with meta information for the current post-date/time.
*/
function xarxaprod_posted_on() {
$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}
$time_string = sprintf(
$time_string,
esc_attr( get_the_date( DATE_W3C ) ),
esc_html( get_the_date() ),
esc_attr( get_the_modified_date( DATE_W3C ) ),
esc_html( get_the_modified_date() )
);
$posted_on = sprintf(
/* translators: %s: post date. */
esc_html_x( 'Posted on %s', 'post date', 'xarxarprod' ),
'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
);
echo '<span class="posted-on">' . $posted_on . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
endif;
if ( ! function_exists( 'xarxaprod_posted_by' ) ) :
/**
* Prints HTML with meta information for the current author.
*/
function xarxaprod_posted_by() {
$byline = sprintf(
/* translators: %s: post author. */
esc_html_x( 'by %s', 'post author', 'xarxarprod' ),
'<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a></span>'
);
echo '<span class="byline"> ' . $byline . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
endif;
if ( ! function_exists( 'xarxaprod_entry_footer' ) ) :
/**
* Prints HTML with meta information for the categories, tags and comments.
*/
function xarxaprod_entry_footer() {
// Hide category and tag text for pages.
if ( 'post' === get_post_type() ) {
/* translators: used between list items, there is a space after the comma */
$categories_list = get_the_category_list( esc_html__( ', ', 'xarxarprod' ) );
if ( $categories_list ) {
/* translators: 1: list of categories. */
printf( '<span class="cat-links">' . esc_html__( 'Posted in %1$s', 'xarxarprod' ) . '</span>', $categories_list ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/* translators: used between list items, there is a space after the comma */
$tags_list = get_the_tag_list( '', esc_html_x( ', ', 'list item separator', 'xarxarprod' ) );
if ( $tags_list ) {
/* translators: 1: list of tags. */
printf( '<span class="tags-links">' . esc_html__( 'Tagged %1$s', 'xarxarprod' ) . '</span>', $tags_list ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
if ( ! is_single() && ! post_password_required() && ( comments_open() || get_comments_number() ) ) {
echo '<span class="comments-link">';
comments_popup_link(
sprintf(
wp_kses(
/* translators: %s: post title */
__( 'Leave a Comment<span class="screen-reader-text"> on %s</span>', 'xarxarprod' ),
array(
'span' => array(
'class' => array(),
),
)
),
wp_kses_post( get_the_title() )
)
);
echo '</span>';
}
edit_post_link(
sprintf(
wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */
__( 'Edit <span class="screen-reader-text">%s</span>', 'xarxarprod' ),
array(
'span' => array(
'class' => array(),
),
)
),
wp_kses_post( get_the_title() )
),
'<span class="edit-link">',
'</span>'
);
}
endif;
if ( ! function_exists( 'xarxaprod_post_thumbnail' ) ) :
/**
* Displays an optional post thumbnail.
*
* Wraps the post thumbnail in an anchor element on index views, or a div
* element when on single views.
*/
function xarxaprod_post_thumbnail() {
if ( post_password_required() || is_attachment() || ! has_post_thumbnail() ) {
return;
}
if ( is_singular() ) :
?>
<div class="post-thumbnail">
<?php the_post_thumbnail(); ?>
</div><!-- .post-thumbnail -->
<?php else : ?>
<a class="post-thumbnail" href="<?php the_permalink(); ?>" aria-hidden="true" tabindex="-1">
<?php
the_post_thumbnail(
'post-thumbnail',
array(
'alt' => the_title_attribute(
array(
'echo' => false,
)
),
)
);
?>
</a>
<?php
endif; // End is_singular().
}
endif;
if ( ! function_exists( 'wp_body_open' ) ) :
/**
* Shim for sites older than 5.2.
*
* @link https://core.trac.wordpress.org/ticket/12563
*/
function wp_body_open() {
do_action( 'wp_body_open' );
}
endif;

43
inc/widgets-register.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registerin g-a-sidebar
*/
function xarxaprod_widgets_init() {
register_sidebar(
array(
'name' => esc_html__( 'Front Page - principal', 'xarxarprod' ),
'id' => 'front-page-widgets',
'description' => esc_html__( 'Add widgets here.', 'xarxarprod' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__( 'Sidebar funds - Lateral ajuts', 'xarxarprod' ),
'id' => 'sidebar-funds',
'description' => esc_html__( 'Add widgets here.', 'xarxarprod' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__( 'Footer - Peu', 'xarxarprod' ),
'id' => 'footer-widgets',
'description' => esc_html__( 'Add widgets here.', 'xarxarprod' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
}
add_action( 'widgets_init', 'xarxaprod_widgets_init' );

57
index.php Normal file
View File

@ -0,0 +1,57 @@
<?php
/**
* The main template file
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Xarxaprod_theme
*/
get_header();
?>
<main id="primary" class="site-main">
<?php
if ( have_posts() ) :
if ( is_home() && ! is_front_page() ) :
?>
<header>
<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
</header>
<?php
endif;
/* Start the Loop */
while ( have_posts() ) :
the_post();
/*
* Include the Post-Type-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Type name) and that will be used instead.
*/
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
</main><!-- #main -->
<?php
get_sidebar();
get_footer();

42
js/customizer.js Normal file
View File

@ -0,0 +1,42 @@
/* global wp, jQuery */
/**
* File customizer.js.
*
* Theme Customizer enhancements for a better user experience.
*
* Contains handlers to make Theme Customizer preview reload changes asynchronously.
*/
( function( $ ) {
// Site title and description.
wp.customize( 'blogname', function( value ) {
value.bind( function( to ) {
$( '.site-title a' ).text( to );
} );
} );
wp.customize( 'blogdescription', function( value ) {
value.bind( function( to ) {
$( '.site-description' ).text( to );
} );
} );
// Header text color.
wp.customize( 'header_textcolor', function( value ) {
value.bind( function( to ) {
if ( 'blank' === to ) {
$( '.site-title, .site-description' ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
position: 'absolute',
} );
} else {
$( '.site-title, .site-description' ).css( {
clip: 'auto',
position: 'relative',
} );
$( '.site-title a, .site-description' ).css( {
color: to,
} );
}
} );
} );
}( jQuery ) );

99
js/navigation.js Normal file
View File

@ -0,0 +1,99 @@
/**
* File navigation.js.
*
* Handles toggling the navigation menu for small screens and enables TAB key
* navigation support for dropdown menus.
*/
( function() {
const siteNavigation = document.getElementById( 'site-navigation-main' );
// Return early if the navigation doesn't exist.
if ( ! siteNavigation ) {
return;
}
const button = siteNavigation.getElementsByTagName( 'button' )[ 0 ];
// Return early if the button doesn't exist.
if ( 'undefined' === typeof button ) {
return;
}
const menu = siteNavigation.getElementsByTagName( 'ul' )[ 0 ];
// Hide menu toggle button if menu is empty and return early.
if ( 'undefined' === typeof menu ) {
button.style.display = 'none';
return;
}
if ( ! menu.classList.contains( 'nav-menu' ) ) {
menu.classList.add( 'nav-menu' );
}
// Toggle the .toggled class and the aria-expanded value each time the button is clicked.
button.addEventListener( 'click', function() {
siteNavigation.classList.toggle( 'toggled' );
if ( button.getAttribute( 'aria-expanded' ) === 'true' ) {
button.setAttribute( 'aria-expanded', 'false' );
} else {
button.setAttribute( 'aria-expanded', 'true' );
}
} );
// Remove the .toggled class and set aria-expanded to false when the user clicks outside the navigation.
document.addEventListener( 'click', function( event ) {
const isClickInside = siteNavigation.contains( event.target );
if ( ! isClickInside ) {
siteNavigation.classList.remove( 'toggled' );
button.setAttribute( 'aria-expanded', 'false' );
}
} );
// Get all the link elements within the menu.
const links = menu.getElementsByTagName( 'a' );
// Get all the link elements with children within the menu.
const linksWithChildren = menu.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' );
// Toggle focus each time a menu link is focused or blurred.
for ( const link of links ) {
link.addEventListener( 'focus', toggleFocus, true );
link.addEventListener( 'blur', toggleFocus, true );
}
// Toggle focus each time a menu link with children receive a touch event.
for ( const link of linksWithChildren ) {
link.addEventListener( 'touchstart', toggleFocus, false );
}
/**
* Sets or removes .focus class on an element.
*/
function toggleFocus() {
if ( event.type === 'focus' || event.type === 'blur' ) {
let self = this;
// Move up through the ancestors of the current link until we hit .nav-menu.
while ( ! self.classList.contains( 'nav-menu' ) ) {
// On li elements toggle the class .focus.
if ( 'li' === self.tagName.toLowerCase() ) {
self.classList.toggle( 'focus' );
}
self = self.parentNode;
}
}
if ( event.type === 'touchstart' ) {
const menuItem = this.parentNode;
event.preventDefault();
for ( const link of menuItem.parentNode.children ) {
if ( menuItem !== link ) {
link.classList.remove( 'focus' );
}
}
menuItem.classList.toggle( 'focus' );
}
}
}() );

35
languages/ofisuport.pot Normal file
View File

@ -0,0 +1,35 @@
# Copyright (C) 2022 Jorge - vitrubio.net
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Xarxarprod 1.0.0\n"
"Report-Msgid-Bugs-To: https://git.hangar.org/xarxaprod/xarxarprod-wp-theme\n"
"Last-Translator: Jorge - vitrubio.net <jorge@vitrubio.net>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2022-10-25T20:51:09+02:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.7.1\n"
"X-Domain: ofsupxxp\n"
#. Theme Name of the theme
msgid "Xarxarprod"
msgstr ""
#. Theme URI of the theme
msgid "https://git.hangar.org/xarxaprod/xarxarprod-wp-theme"
msgstr ""
#. Description of the theme
msgid "Theme for the Xarxarprod.cat"
msgstr ""
#. Author of the theme
msgid "Jorge - vitrubio.net"
msgstr ""
#. Author URI of the theme
msgid "https://vitrubio.net"
msgstr ""

7
languages/readme.txt Normal file
View File

@ -0,0 +1,7 @@
Place your theme language files in this directory.
Please visit the following links to learn more about translating WordPress themes:
https://make.wordpress.org/polyglots/teams/
https://developer.wordpress.org/themes/functionality/localization/
https://developer.wordpress.org/reference/functions/load_theme_textdomain/

30668
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

47
package.json Normal file
View File

@ -0,0 +1,47 @@
{
"name": "underscores",
"version": "1.0.0",
"description": "Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a Parent Theme. Instead try turning me into the next, most awesome, WordPress theme out there. That's what I'm here for.",
"author": "Automattic Theme Team",
"license": "GPL-2.0-or-later",
"keywords": [
"WordPress",
"Theme"
],
"homepage": "https://github.com/Automattic/_s#readme",
"repository": {
"type": "git",
"url": "git+https://github.com/Automattic/_s.git"
},
"bugs": {
"url": "https://github.com/Automattic/_s/issues"
},
"devDependencies": {
"@wordpress/scripts": "^24.4.0",
"dir-archiver": "^1.1.1",
"node-sass": "^7.0.1",
"rtlcss": "^3.5.0"
},
"rtlcssConfig": {
"options": {
"autoRename": false,
"autoRenameStrict": false,
"blacklist": {},
"clean": true,
"greedy": false,
"processUrls": false,
"stringMap": []
},
"plugins": [],
"map": false
},
"scripts": {
"watch": "node-sass sass/ -o ./ --source-map true --output-style expanded --indent-type tab --indent-width 1 -w",
"compile:css": "node-sass sass/ -o ./ && stylelint '*.css' --fix || true && stylelint '*.css' --fix",
"compile:cssadmin": "node-sass -r --output-style compressed sass/adminstyles.scss -o assets/css/ && stylelint '*.css' --fix || true && stylelint '*.css' --fix",
"compile:rtl": "rtlcss style.css style-rtl.css",
"lint:scss": "wp-scripts lint-style 'sass/**/*.scss'",
"lint:js": "wp-scripts lint-js 'js/*.js'",
"bundle": "dir-archiver --src . --dest ../Xarxarprod-theme.zip --exclude .DS_Store .stylelintrc.json .eslintrc .git .gitattributes .github .gitignore README.md composer.json composer.lock node_modules vendor package-lock.json package.json .travis.yml phpcs.xml.dist sass style.css.map yarn.lock"
}
}

View File

@ -0,0 +1,72 @@
<?php
/**
* The template for displaying the "ajuts" funds with search capabilities
*
* Template Name: PAFs, consells, tutorials...
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
* @link https://developer.wordpress.org/themes/template-files-section/page-template-files/
*
* @package Xarxaprod_theme
* @since 1.0
*/
get_header();
?>
<main id="primary" class="site-main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
</header><!-- .page-header -->
<?php
/* Start the Loop */
while ( have_posts() ) :
the_post();
/*
* Include the Post-Type-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Type name) and that will be used instead.
*/
get_template_part( 'template-parts/content', 'page' );
endwhile;
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
<content class="archive-posts <?php xarxaprod_class_posttype(); ?>">
<?php
// https://developer.wordpress.org/reference/functions/get_posts/
// https://www.advancedcustomfields.com/resources/true-false/
$the_query_faq = new WP_Query(
array(
'post_type' => 'post',
'category' => 'faq',
'post_per_page' => '8'
) );
?>
<?php if ( $the_query_faq->have_posts() ) : ?>
<?php while ( $the_query_faq->have_posts() ) : $the_query_faq->the_post(); ?>
<?php get_template_part( 'template-parts/section', 'eachpost' ); ?>
<?php endwhile;//end of the loop ?>
<?php wp_reset_postdata(); ?>
<?php endif; //end query ajut ?>
</content>
</main><!-- #main -->
<?php
get_sidebar();
get_footer();

View File

@ -0,0 +1,53 @@
<?php
/**
* The template for page declared as front-page
*
*
* @link https://developer.wordpress.org/themes/template-files-section/page-template-files/
*
* @package Xarxaprod_theme
*/
get_header();
?>
<main id="primary" class="site-main">
<?php
if ( have_posts() ) :
if ( is_home() && ! is_front_page() ) :
?>
<header>
<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
</header>
<?php
endif;
/* Start the Loop */
while ( have_posts() ) :
the_post();
/*
* Include the Post-Type-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Type name) and that will be used instead.
*/
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
</main><!-- #main -->
<?php
get_sidebar();
get_footer();

View File

@ -0,0 +1,93 @@
<?php
/**
* The template for displaying the "ajuts" funds with search capabilities
*
* Template Name: Cercador ajuts
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
* @link https://developer.wordpress.org/themes/template-files-section/page-template-files/
*
* @package Xarxaprod_theme
* @since 1.0
*/
get_header();
?>
<main id="primary" class="site-main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
</header><!-- .page-header -->
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', 'page' );
endwhile;
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
<section id="filteredfunds" class="xarxaprod-filtered-funds xarxaprod-ajuts-filtrats">
<aside id="fundsfilter" class="xarxaprod-filter-funds xarxaprod-fitre-ajuts">
<?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); if ( is_plugin_active( 'xarxarprod-wp-plugin/xarxaprod-wp-plugin.php' ) ) { // if plugin active do?>
<nav class="sidebar fund-filter">
</nav>
<?php } //end if is_plugin_active ?>
</aside>
<content class="archive-posts <?php xarxaprod_class_posttype(); ?>">
<?php
// https://support.advancedcustomfields.com/forums/topic/wp_query-using-meta_query-for-an-acf-checkbox-field/#post-145830
// https://www.advancedcustomfields.com/resources/checkbox/#query-posts
// https://barn2.com/blog/querying-posts-by-custom-field-acfi/
$the_query_ajut = new WP_Query(
array(
'post_type' => 'xarxaprod-ajut',
'post_per_page' => '6'
)
);
?>
<?php if ( $the_query_ajut->have_posts() ) : ?>
<?php while ( $the_query_ajut->have_posts() ) : $the_query_ajut->the_post(); ?>
<?php get_template_part( 'template-parts/section', 'eachpost' ); ?>
<?php
//the_title('<h3>','</h3>');
// echo '<ul>';
//$postmetas = get_post_meta(get_the_ID());
// foreach($postmetas as $meta_key=>$meta_value) {
// echo '<li><code>' . $meta_key . '</code>:<code>' . $meta_value[0] . '</code></li>';
// } ;
// echo '</ul>';
?>
<?php endwhile;//end of the loop ?>
<?php wp_reset_postdata(); ?>
<?php endif; //end query ajut ?>
</content>
</section>
</main><!-- #main -->
<?php
get_footer();

39
page.php Normal file
View File

@ -0,0 +1,39 @@
<?php
/**
* The template for displaying all pages
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages
* and that other 'pages' on your WordPress site may use a
* different template.
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/
*
* @package Xarxaprod_theme
*/
get_header();
?>
<main id="primary" class="site-main">
<?php
if ( have_posts() ) :
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', 'page' );
endwhile; // End of the loop.
endif; // End if have_post.
?>
</main><!-- #main -->
<?php
if ( is_front_page() ) :
get_template_part( 'template-parts/section', 'featured' );
endif;
?>
<?php
get_sidebar();
get_footer();

110
phpcs.xml.dist Normal file
View File

@ -0,0 +1,110 @@
<?xml version="1.0"?>
<ruleset name="WordPress Theme Coding Standards">
<!-- See https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
<!-- See https://github.com/WordPress/WordPress-Coding-Standards -->
<!-- See https://github.com/WPTRT/WPThemeReview -->
<!-- See https://github.com/PHPCompatibility/PHPCompatibilityWP -->
<!-- Set a description for this ruleset. -->
<description>A custom set of code standard rules to check for WordPress themes.</description>
<!--
#############################################################################
COMMAND LINE ARGUMENTS
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
#############################################################################
-->
<!-- Pass some flags to PHPCS:
p flag: Show progress of the run.
s flag: Show sniff codes in all reports.
-->
<arg value="ps"/>
<!-- Strip the filepaths down to the relevant bit. -->
<arg name="basepath" value="./"/>
<!-- Check up to 8 files simultaneously. -->
<arg name="parallel" value="8"/>
<!-- Check PHP files only. JavaScript and CSS files are checked separately using the @wordpress/scripts package. -->
<arg name="extensions" value="php"/>
<!-- Check all files in this directory and the directories below it. -->
<file>.</file>
<!-- Exclude patterns. -->
<exclude-pattern>/vendor/*</exclude-pattern>
<exclude-pattern>/node_modules/*</exclude-pattern>
<!--
#############################################################################
USE THE WordPress AND THE Theme Review RULESET
#############################################################################
-->
<rule ref="WordPress">
<!-- This rule does not apply here since the _s prefix should be changed by the theme author. -->
<exclude name="WordPress.NamingConventions.PrefixAllGlobals.ShortPrefixPassed"/>
</rule>
<rule ref="WPThemeReview"/>
<!--
#############################################################################
SNIFF SPECIFIC CONFIGURATION
#############################################################################
-->
<!-- Verify that the text_domain is set to the desired text-domain.
Multiple valid text domains can be provided as a comma-delimited list. -->
<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array" value="xarxarprod"/>
</properties>
</rule>
<!-- Allow for theme specific exceptions to the file name rules based
on the theme hierarchy. -->
<rule ref="WordPress.Files.FileName">
<properties>
<property name="is_theme" value="true"/>
</properties>
</rule>
<!-- Set the minimum supported WP version. This is used by several sniffs.
The minimum version set here should be in line with the minimum WP version
as set in the "Requires at least" tag in the readme.txt file. -->
<config name="minimum_supported_wp_version" value="4.5"/>
<rule ref="WordPress.Arrays.MultipleStatementAlignment">
<properties>
<!-- No need to adjust alignment of large arrays when the item with the largest key is removed. -->
<property name="exact" value="false"/>
<!-- Don't align multi-line items if ALL items in the array are multi-line. -->
<property name="alignMultilineItems" value="!=100"/>
<!-- Array assignment operator should always be on the same line as the array key. -->
<property name="ignoreNewlines" value="false"/>
</properties>
</rule>
<!-- Verify that everything in the global namespace is prefixed with a theme specific prefix.
Multiple valid prefixes can be provided as a comma-delimited list. -->
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties>
<property name="prefixes" type="array" value="xarxarprod" />
</properties>
</rule>
<!--
#############################################################################
USE THE PHPCompatibility RULESET
#############################################################################
-->
<config name="testVersion" value="5.6-"/>
<rule ref="PHPCompatibilityWP"/>
</ruleset>

39
readme.txt Normal file
View File

@ -0,0 +1,39 @@
=== Xarxarprod theme ===
Contributors: vitrubio.net
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
Requires at least: 4.5
Tested up to: 6.4.2
Requires PHP: 7.0
Stable tag: 1.0.0
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
A starter theme called Xarxarprod theme.
== Description ==
theme for the Xarxarprod.cat
== Installation ==
1. In your admin panel, go to Appearance > Themes and click the Add New button.
2. Click Upload Theme and Choose File, then select the theme's .zip file. Click Install Now.
3. Click Activate to use your new theme right away.
== Frequently Asked Questions ==
= Does this theme support any plugins? =
Xarxarprod theme includes support for Xarxarprod plugin.
== Changelog ==
= 1.0 - 29th decembre 2023 =
* Initial release
== Credits ==
* Developed by Jorge Vitoria (vitrubio.net) on top of the design by Eudald Van der Pla (vanderpla.com)
* Based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc., [GPLv2 or later](https://www.gnu.org/licenses/gpl-2.0.html)
* normalize.css https://necolas.github.io/normalize.css/, (C) 2012-2018 Nicolas Gallagher and Jonathan Neal, [MIT](https://opensource.org/licenses/MIT)

View File

@ -0,0 +1,5 @@
@import "variables/colors";
@import "variables/typography";
@import "variables/structure";
@import "variables/columns";
@import "mixins/mixins";

View File

@ -0,0 +1,11 @@
// Center block
@mixin center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
// Column width with margin
@mixin column-width($numberColumns: 3) {
width: map-get($columns, $numberColumns) - ( ( $columns__margin * ( $numberColumns - 1 ) ) / $numberColumns );
}

View File

@ -0,0 +1,41 @@
$color__white: #fff;
$color__white-dark: #fdfdfd;
$color__white-transparent: rgba(255,255,255,0.95);
$color__grey-lighter: #eee;
$color__grey-light: #ccc;
$color__grey-dark: #666;
$color__black-light: #333;
$color__black-grey: #111;
$color__black: #000;
$color__black-transparent: rgba(0,0,0,0.95);
$color__orange: #ff8d76;
$color__yellow: #f6cc4c;
$color__pink: #f877c3;
$color__blue: #5c31ff;
$color__lightblue: #5bcee8;
$color__green: #69ed82;
$color__red: #ff686e;
$color__background-body: $color__white;
$color__background-screen: $color__white;
$color__background-hr: $color__black;
$color__background-button: $color__white;
$color__background-pre: $color__grey-lighter;
$color__background-ins: $color__white-dark;
$color__background-input: $color__grey-lighter;
$color__text-screen: $color__black-grey;
$color__text-input: $color__black-light;
$color__text-input-focus: $color__black;
$color__link: $color__black-light;
$color__link-visited: #303030;
$color__link-hover: #707070;
$color__text-main: #404040;
$color__border-button: #000;
$color__border-button-hover: #111;
$color__border-button-focus: #222;
$color__border-input: $color__black;
$color__border-abbr: $color__grey-dark;

View File

@ -0,0 +1,19 @@
$columns: (
1: 100%,
2: 50%,
3: 33.33%,
4: 25%,
5: 20%,
6: 16.66%,
7: 14.28%,
8: 12.5%,
9: 11.11%
);
$columns__margin: 3.8%;
//grid properties
$grid__gap: 1rem;
$grid__column-gap: $grid__gap;
$grid__row-gap: $grid__gap;

View File

@ -0,0 +1,2 @@
$size__site-main: 100%;
$size__site-sidebar: 25%;

View File

@ -0,0 +1,15 @@
// stylelint-disable value-keyword-case
$font__regular: 'din-regular',-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
$font__light: 'din-light',-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
$font__medium: 'din-medium',-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
$font__bold: 'din-bold',-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
$font__black: 'din-black',-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
$font__main: $font__regular;
// stylelint-enable value-keyword-case
$font__code: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace, mono;
$font__pre: "Courier 10 Pitch", courier, monospace;
$font__size-body: 1rem;
$font__line-height-body: 1.3;
$font__line-height-pre: 1.4;
$font__line-height-header:1.1;

34
sass/adminstyles.scss Normal file
View File

@ -0,0 +1,34 @@
// theme for editor admin, import style.sass and apply class before rest of it
// .wp-admin styles
.wp-admin {
.components-button.edit-post-fullscreen-mode-close.has-icon,
.edit-post-fullscreen-mode-close_site-icon {
background-color: #fff;
filter: invert(1);
}
}
.site-icon-preview .app-icon-preview {
background-color: #fff;
}
// editor styles
.edit-post-visual-editor__content-area {
// import theme styles
@import "style";
// apply differences when not rendered properly
:where(.wp-block) {
max-width: 80rem;
}
.black-blocs .wp-block-column a::after {
display:none;
}
}
// modify internal paths to make objects locally available
@import "adminstyles/fonts";

View File

@ -0,0 +1,72 @@
/*
Your custom style
Add your custom styles in this file so it is easier to update the theme.
*/
@font-face {
font-family: 'din-regular';
src: url('../fonts/DIN-Regular.eot');
src: url('../fonts/DIN-Regular.eot?#iefix') format('embedded-opentype'),
url('../fonts/DIN-Regular.woff2') format('woff2'),
url('../fonts/DIN-Regular.woff') format('woff'),
url('../fonts/DIN-Regular.ttf') format('truetype'),
url('../fonts/DIN-Regular.svg#fonts/DIN-Regular') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-medium';
src: url('../fonts/DIN-Medium.eot');
src: url('../fonts/DIN-Medium.eot?#iefix') format('embedded-opentype'),
url('../fonts/DIN-Medium.woff2') format('woff2'),
url('../fonts/DIN-Medium.woff') format('woff'),
url('../fonts/DIN-Medium.ttf') format('truetype'),
url('../fonts/DIN-Medium.svg#DIN-Medium') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-bold';
src: url('../fonts/DIN-Bold.eot');
src: url('../fonts/DIN-Bold.eot?#iefix') format('embedded-opentype'),
url('../fonts/DIN-Bold.woff2') format('woff2'),
url('../fonts/DIN-Bold.woff') format('woff'),
url('../fonts/DIN-Bold.ttf') format('truetype'),
url('../fonts/DIN-Bold.svg#DIN-Bold') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-light';
src: url('../fonts/DIN-Light.eot');
src: url('../fonts/DIN-Light.eot?#iefix') format('embedded-opentype'),
url('../fonts/DIN-Light.woff2') format('woff2'),
url('../fonts/DIN-Light.woff') format('woff'),
url('../fonts/DIN-Light.ttf') format('truetype'),
url('../fonts/DIN-Light.svg#DIN-Light') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-black';
src: url('../fonts/DIN-Black.eot');
src: url('../fonts/DIN-Black.eot?#iefix') format('embedded-opentype'),
url('../fonts/DIN-Black.woff2') format('woff2'),
url('../fonts/DIN-Black.woff') format('woff'),
url('../fonts/DIN-Black.ttf') format('truetype'),
url('../fonts/DIN-Black.svg#DIN-Black') format('svg');
font-weight: 900;
font-style: normal;
font-display: swap;
}

20
sass/base/_base.scss Normal file
View File

@ -0,0 +1,20 @@
/* Typography
--------------------------------------------- */
@import "typography/typography";
/* Elements
--------------------------------------------- */
@import "elements/body";
@import "elements/hr";
@import "elements/lists";
@import "elements/media";
@import "elements/tables";
/* Links
--------------------------------------------- */
@import "elements/links";
/* Forms
--------------------------------------------- */
@import "elements/buttons";
@import "elements/fields";

View File

@ -0,0 +1,3 @@
body {
background: $color__background-body; // Fallback for when there is no custom background color defined.
}

View File

@ -0,0 +1,50 @@
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wp-block-button__link {
border: 1px solid;
border-color: $color__border-button;
border-radius: 0;
background: $color__background-button;
color: $color__text-screen;
line-height: 1;
padding: 0.6em 1em 0.4em;
text-transform: uppercase;
&:hover {
border-color: $color__border-button-hover;
}
&:active,
&:focus {
border-color: $color__border-button-focus;
}
}
.button-more {
//&::before {
// content: "accedir";
// position: absolute;
// bottom: 1em;
// left: 0.5em;
// font-family: $font__light;
// font-size: 1rem;
// line-height: 0;
//}
&::after {
content: "+";
display: inline-block;
width: 1.5rem;
height: 2rem;
padding: 0 0.5rem;
font-family: $font__black;
font-size: 1.5rem;
}
&:hover::after {
content: ">";
padding-left: 0.2rem;
font-size: 1.2rem;
line-height: 1.5;
}
}

View File

@ -0,0 +1,35 @@
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
color: $color__text-input;
background-color: $color__background-input;
border: none;
border-radius: 0;
width: 100%;
padding: 0.3rem;
&:focus {
color: $color__text-input-focus;
}
}
select {
border: 1px solid $color__border-input;
}
textarea {
width: 100%;
}

View File

@ -0,0 +1,6 @@
hr {
background-color: $color__background-hr;
border: 0;
height: 1px;
margin-bottom: 1.5em;
}

View File

@ -0,0 +1,94 @@
a {
color: $color__link;
&:visited {
color: $color__link-visited;
}
&:hover,
&:focus,
&:active {
color: $color__link-hover;
}
&:focus {
outline: thin dotted;
}
&:hover,
&:active {
outline: 0;
}
}
a {
&.button {
text-decoration: none;
}
}
.button,
.excerpt,
.post-excerpt,
.entry-title {
a {
text-decoration: none;
}
}
.home-featured,.archive-posts {
.category-faq,.type-xarxaprod-ajut {
position: relative;
padding-bottom: 4rem;
.entry-title {
a {
&::after {
content: "+";
position:absolute;
bottom: 0;
left: 0;
width: 3rem;
height: 3rem;
padding: 0 0.38rem;
border: 1px solid $color__black;
font-size: 4rem;
line-height: 0.8;
}
&:hover::after {
content: ">";
padding: 0 0.38rem;
font-size: 2.5rem;
line-height: 1.3;
}
}
}
}
.category-faq {
.entry-title {
a {
&::before {
content: "accedir";
position: absolute;
bottom: 1em;
left: 0.5em;
font-family: $font__light;
font-size: 1rem;
line-height: 0;
}
&::after {
content: "+";
width: 8rem;
height: 2rem;
padding: 0 0.5rem;
text-align: right;
font-size: 2.5rem;
line-height: 0.7;
}
&:hover::after {
content: ">";
padding: 0 0.1rem;
font-size: 1.5rem;
line-height: 1.2;
}
}
}
}
}

View File

@ -0,0 +1,64 @@
ul,
ol {
margin: 0 0 0.5em 0.5em;
padding: 0;
}
ul {
list-style: none;
}
ol {
list-style: decimal;
}
li > ul,
li > ol {
margin-bottom: 0;
margin-left: 0.5em;
}
dt {
font-weight: 700;
}
dd {
margin: 0 0 0.5em 0.5em;
padding: 0;
}
.xarxarprod-label {
margin: 0;
padding: 0;
display: inline;
li {
display:inline-block;
margin:0.1rem;
padding: 0 0.2rem;
color: $color__white;
background-color: $color__black;
font-family: $font__black;
font-size: $font__size-body*0.7;
text-transform: uppercase;
}
}
.item-os_fund_target li {
background-color: $color__orange;
}
.item-os_fund_source li {
background-color: $color__lightblue;
}
.item-os_fund_field li {
background-color: $color__yellow;
}
.item-os_fund_dates li {
background-color: $color__green;
}
.item-os_fund_call {
display: block;
margin:0.2rem 0.1rem;
li {
font-size: $font__size-body*1.2;
}
}

View File

@ -0,0 +1,15 @@
/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
max-width: 100%;
}
img {
height: auto; // Make sure images are scaled correctly.
max-width: 100%; // Adhere to container width.
}
figure {
margin: 1em 0; // Extra wide images within figure tags don't overflow the content area.
}

View File

@ -0,0 +1,4 @@
table {
margin: 0 0 1.5em;
width: 100%;
}

View File

@ -0,0 +1,59 @@
p {
margin-bottom: 1.5em;
}
dfn,
cite,
em,
i {
font-style: italic;
}
blockquote {
margin: 0;
p {
font-size: $font__size-body*1.1;
}
}
address {
margin: 0 0 1.5em;
}
pre {
background: $color__background-pre;
font-family: $font__pre;
line-height: $font__line-height-pre;
margin-bottom: 1.6em;
max-width: 100%;
overflow: auto;
padding: 1.6em;
}
code,
.code,
kbd,
tt,
var {
font-family: $font__code;
background-color: $color__background-pre;
}
abbr,
acronym {
border-bottom: 1px dotted $color__border-abbr;
cursor: help;
}
mark,
ins {
background: $color__background-ins;
text-decoration: none;
}
big {
font-size: 125%;
}
.small {
font-size: 80%;
}

View File

@ -0,0 +1,72 @@
/*
Your custom style
Add your custom styles in this file so it is easier to update the theme.
*/
@font-face {
font-family: 'din-regular';
src: url('assets/fonts/DIN-Regular.eot');
src: url('assets/fonts/DIN-Regular.eot?#iefix') format('embedded-opentype'),
url('assets/fonts/DIN-Regular.woff2') format('woff2'),
url('assets/fonts/DIN-Regular.woff') format('woff'),
url('assets/fonts/DIN-Regular.ttf') format('truetype'),
url('assets/fonts/DIN-Regular.svg#fonts/DIN-Regular') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-medium';
src: url('assets/fonts/DIN-Medium.eot');
src: url('assets/fonts/DIN-Medium.eot?#iefix') format('embedded-opentype'),
url('assets/fonts/DIN-Medium.woff2') format('woff2'),
url('assets/fonts/DIN-Medium.woff') format('woff'),
url('assets/fonts/DIN-Medium.ttf') format('truetype'),
url('assets/fonts/DIN-Medium.svg#DIN-Medium') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-bold';
src: url('assets/fonts/DIN-Bold.eot');
src: url('assets/fonts/DIN-Bold.eot?#iefix') format('embedded-opentype'),
url('assets/fonts/DIN-Bold.woff2') format('woff2'),
url('assets/fonts/DIN-Bold.woff') format('woff'),
url('assets/fonts/DIN-Bold.ttf') format('truetype'),
url('assets/fonts/DIN-Bold.svg#DIN-Bold') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-light';
src: url('assets/fonts/DIN-Light.eot');
src: url('assets/fonts/DIN-Light.eot?#iefix') format('embedded-opentype'),
url('assets/fonts/DIN-Light.woff2') format('woff2'),
url('assets/fonts/DIN-Light.woff') format('woff'),
url('assets/fonts/DIN-Light.ttf') format('truetype'),
url('assets/fonts/DIN-Light.svg#DIN-Light') format('svg');
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'din-black';
src: url('assets/fonts/DIN-Black.eot');
src: url('assets/fonts/DIN-Black.eot?#iefix') format('embedded-opentype'),
url('assets/fonts/DIN-Black.woff2') format('woff2'),
url('assets/fonts/DIN-Black.woff') format('woff'),
url('assets/fonts/DIN-Black.ttf') format('truetype'),
url('assets/fonts/DIN-Black.svg#DIN-Black') format('svg');
font-weight: 900;
font-style: normal;
font-display: swap;
}

View File

@ -0,0 +1,89 @@
@media screen {
h1,
h2,
h3,
h4,
h5 {
text-transform: uppercase;
clear: both;
line-height: $font__line-height-header;
}
h1 {
font-family: $font__light;
font-size: $font__size-body*1.8;
}
h2 {
font-family: $font__light;
font-size: $font__size-body*1.5;
}
h3 {
font-family: $font__black;
font-size: $font__size-body*1.3;
}
h4 {
font-family: $font__bold;
font-size: $font__size-body*1.2;
}
h5 {
font-family: $font__medium;
font-size: $font__size-body*1.1;
}
h6 {
font-family: $font__light;
font-size: $font__size-body*1.1;
}
.site-main {
h1,
h2,
h3,
h4,
h5,
h6,
.entry-content {
margin: 0;
}
}
.single {
h1 {
font-family: $font__black;
}
}
.home-featured {
h2 {
margin: 1.2rem 0;
font-size: $font__size-body*2;
line-height: 1.2;
border-bottom: 0.6rem solid $color__black;
}
}
}
@media screen and (min-width: 48em) {
h1 {
font-size: $font__size-body*3.5;
}
h2 {
font-size: $font__size-body*2.5;
}
h3 {
font-size: $font__size-body*2;
}
h4 {
font-family: $font__black;
font-size: $font__size-body*1.7;
}
h5 {
font-size: $font__size-body*1.5;
}
h6 {
font-size: $font__size-body*1.5;
}
.home-featured {
h2 {
font-size: $font__size-body*3.5;
border-bottom: 0.8rem solid $color__black;
}
}
}
@media screen and (min-width: 80em) {
}

View File

@ -0,0 +1,15 @@
body,
button,
input,
select,
optgroup,
textarea {
color: $color__text-main;
font-family: $font__main;
font-size: $font__size-body;
line-height: $font__line-height-body;
}
@import "headings";
@import "copy";
@import "fonts";

View File

@ -0,0 +1,28 @@
/* Navigation
--------------------------------------------- */
@import "navigation/navigation";
/* Posts and pages
--------------------------------------------- */
@import "content/posts-and-pages";
@import "content/login";
/* Comments
--------------------------------------------- */
@import "comments/comments";
/* Widgets
--------------------------------------------- */
@import "widgets/widgets";
/* Media
--------------------------------------------- */
@import "media/media";
/* Captions
--------------------------------------------- */
@import "media/captions";
/* Galleries
--------------------------------------------- */
@import "media/galleries";

View File

@ -0,0 +1,7 @@
.comment-content a {
word-wrap: break-word;
}
.bypostauthor {
display: block;
}

View File

View File

@ -0,0 +1,126 @@
@media screen {
.sticky {
display: block;
}
.post,
.page {
margin: 0 0 1.5em;
}
.updated:not(.published) {
display: none;
}
.page-content,
.entry-content,
.entry-summary {
margin: 1.5em 0 0;
}
.page-links {
clear: both;
margin: 0 0 1.5em;
}
.xarxaprod-card-each {
.entry-title,h6 {
border-bottom: 1px solid $color__black;
margin: 0;
padding: 0.5rem 0;
}
p {
padding: 0.5rem 0;
margin:0;
}
}
.xarxaprod-fund-info-fields,
.xarxaprod-fund-info-contact-fields {
display: grid;
.xarxaprod-fund-info-field {
padding-bottom: 1rem;
border-bottom: 1px solid $color__black;
}
h6 {
font-size: 2.4rem;
font-variant: all-petite-caps;
}
p {
margin: 0.5rem 0 0 0;
}
li {
font-size: 1.3rem;
}
}
.xarxaprod-fund-info-contact-fields {
.xarxaprod-fund-info-field {
margin: 0;
}
}
.xarxaprod-fund-info-fields {
.xarxaprod-fund-info-field {
margin: 1rem 0 0.5rem 0;
}
}
.xarxarprod-label {
}
.xarxaprod-funder-name,
.xarxaprod-fund-contact-name,
.xarxaprod-fund-web {
display: flex;
margin:0;
padding: 0;
font-variant: all-petite-caps;
font-size: 1.1rem;
line-height: 0.9;
align-items: center;
a {
text-decoration: none;
font-size: 0.8rem;
}
}
// .page-template-funds-search {
.xarxaprod-filtered-funds {
display:grid;
grid-template-columns: 1fr 1fr;
}
.xarxaprod-fund-filter {
display: grid;
grid-template-columns: repeat(1 , 1fr);
gap: $grid__gap;
}
.archive-posts {
grid-template-columns: repeat(1 , 1fr);
}
//}
}
@media screen and (max-width: 48em) {
//only smaller than 48em
}
@media screen and (min-width: 48em) {
//only bigger than 48em
//.page-template-funds-search {
.xarxaprod-filtered-funds {
grid-template-columns: 1fr 2fr;
}
.xarxaprod-fund-filter {
}
.archive-posts {
grid-template-columns: repeat(2 , 1fr);
}
//}
}
@media screen and (min-width: 80em) {
//only bigger than 80rem
//.page-template-funds-search {
.xarxaprod-filtered-funds {
grid-template-columns: 1fr 3fr;
}
.xarxaprod-fund-filter {
}
.archive-posts {
grid-template-columns: repeat(3 , 1fr);
}
//}
}

View File

@ -0,0 +1,17 @@
.wp-caption {
margin-bottom: 1.5em;
max-width: 100%;
img[class*="wp-image-"] {
@include center-block;
}
.wp-caption-text {
margin: 0.8075em 0;
}
}
.wp-caption-text {
text-align: center;
}

View File

@ -0,0 +1,23 @@
.gallery {
margin-bottom: 1.5em;
display: grid;
grid-gap: 1.5em;
}
.gallery-item {
display: inline-block;
text-align: center;
width: 100%;
}
// Loops to enumerate the classes for gallery columns.
@for $i from 2 through 9 {
.gallery-columns-#{$i} {
grid-template-columns: repeat($i, 1fr);
}
}
.gallery-caption {
display: block;
}

View File

@ -0,0 +1,13 @@
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
border: none;
margin-bottom: 0;
margin-top: 0;
padding: 0;
}
/* Make sure logo link wraps around logo image. */
.custom-logo-link {
display: inline-block;
}

View File

@ -0,0 +1,307 @@
@media screen {
.hide-content {
display: block;
width: 0px;
height:0px;
margin: 0;
padding:0;
overflow:hidden;
}
.custom-logo {
min-width: 11rem;
margin: 1rem;
}
.main-navigation,.secondary-navigation {
ul {
display: none;
list-style: none;
margin: 0;
padding-left: 0;
ul {
background-color: $color__white;
box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
float: left;
position: absolute;
top: 100%;
left: -999em;
z-index: 99999;
ul {
left: -999em;
top: 0;
}
li {
&:hover > ul,
&.focus > ul {
display: block;
left: auto;
}
}
a {
width: 200px;
}
:hover > a,
.focus > a {
}
a:hover,
a.focus {
}
}
li:hover > ul,
li.focus > ul {
left: auto;
}
}
li {
position: relative;
&:hover > a,
&.focus > a {
}
}
a {
display: flex;
align-items: center;
min-height: 100%;
padding: 0 0.5rem;
text-decoration: none;
font-size: 1rem;
}
.current_page_item > a,
.current-menu-item > a,
.current_page_ancestor > a,
.current-menu-ancestor > a {
font-weight: bold;
font-family: $font__bold;
border-left: 1px solid $color__black;
}
}
.main-navigation {
a[href^="http://localhost"],
a[href^="http://xarxarprod.cat"],
a[href^="https://xarxarprod.cat"]
{
font-family: $font__bold;
border-left: 1px solid $color__black;
}
}
.secondary-navigation {
padding: 1em 0;
ul {
display: inline-block;
li {
padding: 0.5em 0;
}
}
a {
text-transform: uppercase;
}
}
.menu-item-has-children {
&::after {
content: "";
display: inline-block;
position: absolute;
top: 40%;
right: 0.3em;
//vertical-align: middle;
//margin: -3em 0 0.5em;
width: 0.3em;
height: 0.3em;
border: 1px solid $color__grey-light;
border-top: none;
border-left: none;
-moz-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
&:hover {
&::after {
border-color: $color__grey-dark;
}
}
}
/* begin of menu-hidden */
.toogle-secondary-navigation .show-mobile{
display:inherit;
}
.toogle,
.toogled-menu {
display: none;
}
.toogle:checked+.toogled-menu{
display: block;
position: absolute;
left:0;
top:0;
width: 100%;
height: 100vh;
margin-top: 0;
padding: 7em 4em 0 4em;
background-color: $color__white;
}
.toogle-show {
position: relative;
display: inline-block;
width: 1.8em;
height: 1.4em;
margin-right: 0.3em;
border-top: 0.3em solid $color__black;
border-bottom: 0.3em solid $color__black;
}
.toogle-show::before {
content: "";
position: absolute;
top: 0.3em;
left: 0;
width: 100%;
border-top: 0.3em solid $color__black;
}
.toogle-hide {
display: flex;
justify-content: center;
}
.toogle-hide::after{
content: "x";
padding: 0;
font-size: 3rem;
font-weight: bold;
}
/* end of menu hidden*/
/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
display: block;
}
.xarxaprod-filters {
.xarxaprod-filter {
//float: left;
}
}
}
@media screen and (min-width: 48em) {
.site-branding {
}
.custom-logo {
min-width: 11rem;
margin: 1rem 1rem 1rem 0;
}
.menu-toggle {
display: none;
}
.main-navigation,.secondary-navigation {
ul {
display: flex;
}
a {
padding: 0 0.5rem;
}
.current_page_item > a,
.current-menu-item > a,
.current_page_ancestor > a,
.current-menu-ancestor > a {
border-left: none;
}
}
.main-navigation {
padding-bottom: 1em;
ul {
justify-content: end;
}
a[href^="http://localhost"],
a[href^="http://xarxarprod.cat"],
a[href^="https://xarxarprod.cat"]
{
font-family: $font__bold;
border-left:none;
}
a[href^="http://localhost"]::after,
a[href^="http://xarxarprod.cat"]::after,
a[href^="https://xarxarprod.cat"]::after,
.current-menu-item a::after {
display: inline-block;
content: "";
position: absolute;
left: 5%;
min-height: 2px;
height: 100%;
width: 90%;
margin-top: 2.3em;
border-bottom: 0.3rem solid $color__black;
}
}
.secondary-navigation {
padding: 1.5em 0;
}
/*
* css menu toogler
* */
.toogle-secondary-navigation .show-mobile,
.toogle-secondary-navigation .hide-not-mobile{
display: none;
}
.toogled-menu {
display: inherit;
}
/* end css menu toogler
* */
}
.comment-navigation,
.posts-navigation,
.post-navigation {
.site-main & {
margin: 0 0 1.5em;
}
.nav-links {
display: flex;
}
.nav-previous {
flex: 1 0 50%;
}
.nav-next {
text-align: end;
flex: 1 0 50%;
}
}
@media screen and (min-width: 80em) {
.main-navigation,.secondary-navigation {
.toogle-sidebar-segona .show-mobile,
.toogle-sidebar-segona .hide-not-mobile{
display:none;
}
a {
padding: 0 1rem;
}
}
.main-navigation {
padding-bottom: 0;
a[href^="http://localhost"]::after,
a[href^="http://xarxarprod.cat"]::after,
a[href^="https://xarxarprod.cat"]::after,
.current-menu-item a::after {
margin-top: 5em;
}
}
}

View File

@ -0,0 +1,8 @@
.widget {
margin: 0 0 1.5em;
// Make sure select elements fit in widgets.
select {
max-width: 100%;
}
}

View File

@ -0,0 +1,11 @@
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
box-sizing: inherit;
}
html {
box-sizing: border-box;
}

View File

@ -0,0 +1,349 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15;
-webkit-text-size-adjust: 100%;
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace;
font-size: 1em;
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input {
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0;
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

View File

@ -0,0 +1,27 @@
.site {
display: grid;
grid-template-columns: auto ($size__site-sidebar);
grid-template-areas:
"header header"
"main sidebar"
"footer footer";
}
.site-header {
grid-area: header;
}
.site-main {
grid-area: main;
overflow: hidden; /* Resolves issue with <pre> elements forcing full width. */
}
.widget-area {
grid-area: sidebar;
}
.site-footer {
grid-area: footer;
}
@import "no-sidebar";

View File

@ -0,0 +1,140 @@
@media screen {
.no-sidebar {
}
.site {
display: grid;
grid-template-columns: 1fr minmax(0,35em) minmax(0,35em) 1fr;
grid-template-areas:
"header"
"main"
"aside"
"footer";
margin: auto;
padding: 0;
> header {
grid-column: 1 / -1;
}
> main {
grid-column: 2 / 4;
}
> aside {
grid-column: 2 / 4;
}
> footer {
grid-column: 1 / -1;
}
}
.site-header {
position: sticky;
z-index: 900;
top: 0;
margin-bottom: 2rem;
background-color: $color__white;
box-shadow: 0 15px 30px rgba(0,0,0,0.05), 0 1px 0 0 rgba(0,0,0,0.0);
.main {
display: flex;
flex-flow: row;
align-items: center;
justify-content: space-around;
}
.secondary {
display: flex;
flex-flow: column;
align-items: center;
}
}
.site-main {
padding: 0 1rem;
}
.site-footer {
}
.home-featured {
padding: 0 1rem;
}
.xarxaprod-destacats,.xarxaprod-featured,.archive-posts {
display: grid;
grid-template-columns: repeat(1 , 1fr);
gap: $grid__gap;
}
}
@media screen and (max-width: 48em) {
//only smaller than 48em
.site-header {
}
.site-main {
}
.site-footer {
}
.page-template-funds-search {
}
.home-featured {
}
}
@media screen and (min-width: 48em) {
//only bigger than 48em
.site {
> header {
}
> main {
}
> aside {
}
> footer {
}
}
.site-header {
.main {
flex-flow: column;
}
.secondary {
border-top: 1px solid $color__grey-lighter;
}
}
.site-main {
padding: 0 2rem;
}
.site-footer {
}
.home-featured {
padding: 0 2rem;
}
&.single {
.site-main {
width: 45rem;
margin: 0 auto;
}
}
.xarxaprod-destacats,.xarxaprod-featured,.archive-posts {
grid-template-columns: repeat(4 , 1fr);
}
}
@media screen and (min-width: 80em) {
//only bigger than 80rem
.site {
> header {
}
> main {
}
> aside {
}
> footer {
}
}
.site-header {
.main {
width: 80em;
margin: auto;
flex-flow: row;
}
.secondary {
}
}
.site-main {
padding: 0;
}
.site-footer {
}
.home-featured {
padding: 0;
}
}

View File

@ -0,0 +1,27 @@
.site {
display: grid;
grid-template-columns: ($size__site-sidebar) auto;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
.site-header {
grid-area: header;
}
.site-main {
grid-area: main;
overflow: hidden; /* Resolves issue with <pre> elements forcing full width. */
}
.widget-area {
grid-area: sidebar;
}
.site-footer {
grid-area: footer;
}
@import "no-sidebar";

View File

@ -0,0 +1,51 @@
//.wpcf7-form-control-wrap {
// input {
// margin-top: -1em;
// }
//}
.wpcf7-not-valid:not(:focus) {
background-color: $color__red;
}
.wpcf7-not-valid-tip {
color: $color__red;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: $color__yellow;
background-color: $color__yellow;
color: $color__white;
font-family: "din-medium";
font-weight: bold;
text-align: center;
margin: 0em;
padding: 0rem;
}
.wpcf7-form {
.contactform-name, .wpcf7-form .contactform-email {
max-width: 40%;
display: inline-block;
}
.contactform-name {
float: left;
}
.contactform-email {
float:right;
margin-bottom: 1rem;
}
.contactform-message {
}
.contactform-acceptance {
display: flex;
align-items: center;
justify-content: end;
}
.wpcf7-submit {
margin-left: 1rem;
}
.wpcf7-spinner {
margin: 0 -24px 0 0;
}
}

View File

@ -0,0 +1,53 @@
.black-blocs {
padding: $font__size-body 0;
gap: $font__size-body;
.wp-block-column {
align-self: auto;
display: flex;
flex-direction: column;
position: relative;
min-height: 17rem;
padding: $font__size-body;
h1,
h2,
h3,
h4,
h5,
h6 {
min-height: $font__size-body * 4.8;
font-family: $font__black;
font-size: $font__size-body * 2;
line-height: $font__line-height-body * 0.8;
}
p {
font-family: $font__bold;
font-size: $font__size-body * 0.9;
}
a {
color: $color__white;
text-decoration: none;
&::after {
content: "+";
position: absolute;
bottom: -1rem;
left: 0.7rem;
font-size: 5rem;
}
&:hover {
color: $color__grey-light;
&::after {
content: ">";
font-size: 3rem;
bottom: 0;
}
}
}
}
}

View File

@ -0,0 +1,10 @@
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
display: none;
}
/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
display: block;
}

View File

@ -0,0 +1,21 @@
@media screen and (min-width: 768px) {
.col2-set {
.form-row-first {
float: left;
margin-right: $columns__margin;
}
.form-row-last {
float: right;
margin-right: 0;
}
.form-row-first,
.form-row-last {
@include column-width(2);
}
}
}

View File

@ -0,0 +1,277 @@
/**
* Header cart
*/
.site-header-cart {
position: relative;
margin: 0;
padding: 0;
.cart-contents {
text-decoration: none;
}
.widget_shopping_cart {
display: none;
}
.product_list_widget {
margin: 0;
padding: 0;
}
}
/**
* Star rating
*/
.star-rating {
overflow: hidden;
position: relative;
height: 1.618em;
line-height: 1.618;
width: 5.3em;
font-family: star;
font-weight: 400;
&::before {
content: "\53\53\53\53\53";
opacity: 0.25;
float: left;
top: 0;
left: 0;
position: absolute;
}
span {
overflow: hidden;
float: left;
top: 0;
left: 0;
position: absolute;
padding-top: 1.5em;
}
span::before {
content: "\53\53\53\53\53";
top: 0;
position: absolute;
left: 0;
color: $color__link;
}
}
p.stars {
a {
position: relative;
height: 1em;
width: 1em;
text-indent: -999em;
display: inline-block;
text-decoration: none;
margin-right: 1px;
font-weight: 400;
&::before {
display: block;
position: absolute;
top: 0;
left: 0;
width: 1em;
height: 1em;
line-height: 1;
font-family: star;
content: "\53";
color: $color__text-main;
text-indent: 0;
opacity: 0.25;
}
&:hover {
~ a::before {
content: "\53";
color: $color__text-main;
opacity: 0.25;
}
}
}
&:hover {
a {
&::before {
content: "\53";
color: $color__link;
opacity: 1;
}
}
}
&.selected {
a.active {
&::before {
content: "\53";
color: $color__link;
opacity: 1;
}
~ a::before {
content: "\53";
color: $color__text-main;
opacity: 0.25;
}
}
a:not(.active) {
&::before {
content: "\53";
color: $color__link;
opacity: 1;
}
}
}
}
/**
* Tabs
*/
.woocommerce-tabs {
ul.tabs {
list-style: none;
margin: 0;
padding: 0;
text-align: left;
li {
display: block;
margin: 0;
position: relative;
a {
padding: 1em 0;
display: block;
}
}
}
.panel {
h2:first-of-type {
margin-bottom: 1em;
}
}
}
/**
* Password strength meter
*/
.woocommerce-password-strength {
text-align: right;
&.strong {
color: $woocommerce__color-success;
}
&.short {
color: $woocommerce__color-error;
}
&.bad {
color: $woocommerce__color-error;
}
&.good {
color: $woocommerce__color-info;
}
}
/**
* Forms
*/
.form-row {
&.woocommerce-validated {
input.input-text {
box-shadow: inset 2px 0 0 $woocommerce__color-success;
}
}
&.woocommerce-invalid {
input.input-text {
box-shadow: inset 2px 0 0 $woocommerce__color-error;
}
}
}
.required {
color: #f00;
}
/**
* Notices
*/
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
background-color: $woocommerce__color-success;
clear: both;
}
.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
background-color: $woocommerce__color-info;
}
.woocommerce-error {
background-color: $woocommerce__color-error;
}
.demo_store {
position: fixed;
left: 0;
bottom: 0;
right: 0;
margin: 0;
padding: 1em;
background-color: $woocommerce__color-info;
z-index: 9999;
}
@media screen and (min-width: 48em) {
/**
* Header cart
*/
.site-header-cart {
.widget_shopping_cart {
position: absolute;
top: 100%;
width: 100%;
z-index: 999999;
left: -999em;
display: block;
box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
}
&:hover,
&.focus {
.widget_shopping_cart {
left: 0;
display: block;
}
}
}
}

View File

@ -0,0 +1,60 @@
ul.products {
margin: 0;
padding: 0;
li.product {
list-style: none;
position: relative;
margin-bottom: 2em;
img {
display: block;
}
.button {
display: block;
}
}
}
@media screen and (min-width: 48em) {
ul.products {
li.product {
@include column-width(3);
float: left;
margin-right: $columns__margin;
&.first {
clear: both;
}
&.last {
margin-right: 0;
}
}
}
ul.products.columns-1 {
li.product {
float: none;
width: 100%;
}
}
@for $i from 2 through 6 {
ul.products.columns-#{$i} {
li.product {
@include column-width( $i );
}
}
}
}

View File

@ -0,0 +1,86 @@
.single-product {
div.product {
position: relative;
.woocommerce-product-gallery {
position: relative;
float: left;
.woocommerce-product-gallery__trigger {
position: absolute;
top: 2em;
right: 1em;
display: block;
z-index: 99;
}
.flex-viewport {
margin-bottom: 1em;
}
.flex-control-thumbs {
margin: 0;
padding: 0;
li {
list-style: none;
cursor: pointer;
float: left;
img {
opacity: 0.5;
&.flex-active {
opacity: 1;
}
}
&:hover {
img {
opacity: 1;
}
}
}
}
@for $i from 2 through 5 {
&.woocommerce-product-gallery--columns-#{$i} {
.flex-control-thumbs {
li {
@include column-width($i);
&:nth-child(#{$i}n) {
margin-right: 0;
}
&:nth-child(#{$i}n+1) {
clear: both;
}
}
}
}
}
}
}
}
.stock {
&:empty::before {
display: none;
}
&.in-stock {
color: $woocommerce__color-success;
}
&.out-of-stock {
color: $woocommerce__color-error;
}
}

View File

@ -0,0 +1,87 @@
table.shop_table_responsive {
thead {
display: none;
}
tbody {
th {
display: none;
}
}
tr {
td {
display: block;
text-align: right;
clear: both;
&::before {
content: attr(data-title) ": ";
float: left;
}
&.product-remove {
a {
text-align: left;
}
&::before {
display: none;
}
}
&.actions,
&.download-actions {
&::before {
display: none;
}
}
&.download-actions {
.button {
display: block;
text-align: center;
}
}
}
}
}
@media screen and (min-width: 48em) {
table.shop_table_responsive {
thead {
display: table-header-group;
}
tbody {
th {
display: table-cell;
}
}
tr {
th,
td {
text-align: left;
}
td {
display: table-cell;
&::before {
display: none;
}
}
}
}
}

View File

@ -0,0 +1,65 @@
/**
* WooCommerce Price Filter
*/
.widget_price_filter {
.price_slider {
margin-bottom: 1.5em;
}
.price_slider_amount {
text-align: right;
line-height: 2.4;
.button {
float: left;
}
}
.ui-slider {
position: relative;
text-align: left;
}
.ui-slider .ui-slider-handle {
position: absolute;
z-index: 2;
width: 1em;
height: 1em;
cursor: ew-resize;
outline: none;
background: $color__link;
box-sizing: border-box;
margin-top: -0.25em;
opacity: 1;
&:last-child {
margin-left: -1em;
}
&:hover,
&.ui-state-active {
box-shadow: 0 0 0 0.25em rgba(#000, 0.1);
}
}
.ui-slider .ui-slider-range {
position: absolute;
z-index: 1;
display: block;
border: 0;
background: $color__link;
}
.price_slider_wrapper .ui-widget-content {
background: rgba(0, 0, 0, 0.1);
}
.ui-slider-horizontal {
height: 0.5em;
}
.ui-slider-horizontal .ui-slider-range {
height: 100%;
}
}

114
sass/style.scss Normal file
View File

@ -0,0 +1,114 @@
/*
Theme Name: Xarxarprod theme
Theme URI: http://underscores.me/
Author: jorge-vitrubio.net
Author URI: https://vitrubio.net
Description: theme for the Xarxarprod.cat
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: xarxarprod
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.
Xarxarprod theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.
Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
- Normalize
- Box sizing
# Base
- Typography
- Elements
- Links
- Forms
## Layouts
# Components
- Navigation
- Posts and pages
- Comments
- Widgets
- Media
- Captions
- Galleries
# plugins
- Jetpack infinite scroll
# Utilities
- Accessibility
- Alignments
--------------------------------------------------------------*/
// Import variables and mixins.
@import "abstracts/abstracts";
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
@import "generic/normalize";
/* Box sizing
--------------------------------------------- */
@import "generic/box-sizing";
/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
@import "base/base";
/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
@import "layouts/no-sidebar"; // Uncomment this line for a no sidebar content.
// @import "layouts/content-sidebar"; // Uncomment this line for a sidebar on right side of your content.
// @import "layouts/sidebar-content"; // Uncomment this line for a sidebar on left side of your content.
/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
@import "components/components";
/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
@import "plugins/jetpack/infinite-scroll";
/* Guttenberg
--------------------------------------------- */
@import "plugins/guttemberg/guttemberg";
/* Contact Form 7
--------------------------------------------- */
@import "plugins/contactform7/contactform7";
/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
/* Accessibility
--------------------------------------------- */
@import "utilities/accessibility";
/* Alignments
--------------------------------------------- */
@import "utilities/alignments";

View File

@ -0,0 +1,38 @@
/* Text meant only for screen readers. */
.screen-reader-text {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute !important;
width: 1px;
word-wrap: normal !important; // Many screen reader and browser combinations announce broken words as they would appear visually.
&:focus {
background-color: $color__background-screen;
border-radius: 3px;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
clip: auto !important;
clip-path: none;
color: $color__text-screen;
display: block;
font-size: 0.875rem;
font-weight: 700;
height: auto;
left: 5px;
line-height: normal;
padding: 15px 23px 14px;
text-decoration: none;
top: 5px;
width: auto;
z-index: 100000; // Above WP toolbar.
}
}
/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
outline: 0;
}

View File

@ -0,0 +1,27 @@
.alignleft {
/*rtl:ignore*/
float: left;
/*rtl:ignore*/
margin-right: 1.5em;
margin-bottom: 1.5em;
}
.alignright {
/*rtl:ignore*/
float: right;
/*rtl:ignore*/
margin-left: 1.5em;
margin-bottom: 1.5em;
}
.aligncenter {
clear: both;
@include center-block;
margin-bottom: 1.5em;
}

Some files were not shown because too many files have changed in this diff Show More