Universitat

Universitats - text

Els estudis post obligatoris universitaris s’organitzen en tres cicles que impliquen l'obtenció dels corresponents títols oficials de grau, màster universitari i doctorat.

Tria l'opció que més t'interessi:

  • Beques. Totes les administracions amb competències educatives a Catalunya tenen programes de suport econòmic o subvencions a les persones estudiants. Poden ser ajuts a l’estudi o a qualsevol de les necessitats relacionades (transport, habitatge si estudies lluny de casa, alimentació, etc.)
  • Estudiar a l’estranger. Programes de mobilitat internacional que faciliten ajuts per a l'allotjament, cursos intensius d'idiomes o la possibilitat de fer pràctiques laborals o d'investigació remunerades. 
  • Accés a la Universitat. Les set universitats públiques catalanes i la Universitat de Vic - Universitat Central de Catalunya (UVic - UCC) disposen d'un procediment de preinscripció i distribució dels estudiants per garantir la igualtat de condicions en l'admissió al primer curs dels estudis de grau. La resta de les universitats privades i la UOC tenen processos de preinscripció propis.
  • Graus. Són els primers estudis que es realitzen en accedir a la universitat. Tenen la finalitat d'obtenir una formació de caràcter general, orientada a la preparació per al món professional. Per aconseguir el títol oficial de graduat/ada, cal cursar, com a mínim, 240 crèdits ECTS (European Credit Transfer and Accumulation System), que equivalen a un període d'estudis d'almenys quatre anys.
  • Màsters i estudis post-obligatoris. Els estudis de màster comencen després dels de grau. Són estudis universitaris oficials que tenen com a finalitat assolir una formació avançada, orientada a l'especialització acadèmica o professional, o bé a promoure la iniciació en tasques de recerca. Per accedir als estudis de màster universitari cal tenir un títol universitari oficial de l'Estat espanyol o expedit per una institució d'educació superior de l'espai europeu d'educació superior (EEES). Per obtenir el títol de màster universitari caldrà haver fet 60, 90 o 120 crèdits ECTS, que equivalen a un període d'estudis d'un o dos anys acadèmics.

Asset Publisher

An error occurred while processing the template.
The following has evaluated to null or missing:
==> enlaces  [in template "5469721879361428997#20119#325659" at line 158, column 37]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${enlaces}  [in template "5469721879361428997#20119#325659" at line 158, column 35]
----
1<style> 
2.results-list-formacio { 
3    background: #fff; 
4    border: 1px solid #CC5D27; 
5    border-radius: 10px 30px 10px 10px; 
6    display: flex; 
7    flex-wrap: wrap; 
8    padding: 20px; 
9    padding-right: 40px; 
10    position: relative; 
11    row-gap: 20px; 
12    transition: all 0.3s; 
13    -webkit-transition: all 0.3s; 
14
15 
16.select-label { 
17    font-size: 1.5em; 
18    /* Tamaño similar al de un h3 */ 
19    font-weight: bold; 
20    /* Negrita */ 
21    margin-bottom: 10px; 
22    /* Espacio debajo del label */ 
23    display: block; 
24    /* Asegura que el label esté en su propia línea */ 
25
26 
27.result-info-formacio { 
28    column-gap: 20px; 
29    display: flex; 
30    flex: 100%; 
31
32 
33.load-more-btn { 
34    background-color: #CC5D27; 
35    color: #fff; 
36    padding: 10px 20px; 
37    border-radius: 5px; 
38    text-decoration: none; 
39    display: inline-block; 
40    margin-top: 20px; 
41
42</style> 
43<#if entries?has_content> 
44    <#assign categoryList=[] /> 
45    <!-- Recorremos todas las entradas para obtener sus categorías --> 
46    <#list entries as entry> 
47        <#assign categories=entry.getCategories()![] /> 
48        <#if categories?has_content> 
49            <#list categories as category> 
50                <!-- Si la categoría no está en la lista, la agregamos --> 
51                <#if category.getName() != "Enlaces" && category.getName() != "Sistema de Qualificació Professional" && category.getName() != "Formacio Professional Especifica" &&  !(categoryList?seq_contains(category.getName()))>  
52                    <#assign categoryList=categoryList + [category.getName()] /> 
53                </#if> 
54            </#list> 
55        </#if> 
56    </#list> 
57		<#assign idioma = themeDisplay.getLocale().language /> 
58		<#assign entriesSize=entries?size /> 
59		<#assign selectLabel = "Escull una opció: " /> 
60		<#assign select = "Seleccionar" /> 
61		<#assign nonAvailableCategories = "No hi ha categories disponibles" /> 
62		<#assign enlaces = "Enllaços" /> 
63		<#assign masEnlaces = "Veure més enllaços" /> 
64		<#assign de = "de" /> 
65		<#if idioma == "es"> 
66			<#assign selectLabel = "Escoge una opción: " /> 
67			<#assign nonAvailableCategories = "No hay categorías disponibles" /> 
68			<#assign enlaces = "Enlaces" /> 
69			<#assign masEnlaces = "Ver más enlaces" /> 
70		<#elseif idioma == "en"> 
71			<#assign selectLabel = "Choose an option: " /> 
72			<#assign nonAvailableCategories = "No categories available" /> 
73			<#assign select = "Select" /> 
74			<#assign enlaces = "Links" /> 
75			<#assign masEnlaces = "See more links" /> 
76			<#assign de = "of" /> 
77		</#if> 
78    <!-- Mostrar el select con las categorías obtenidas --> 
79    <div class="wrapper medium mb-2"> 
80        <div class="results-list-formacio d-flex justify-content-center align-items-center"> 
81            <label for="categorySelect" class="select-label mr-2 pt-2">${selectLabel}</label> 
82            <select id="categorySelect"> 
83                <option value="">${select}</option> 
84                <#if categoryList?has_content> 
85                    <#list categoryList as categoryName> 
86                        <option value="${categoryName}"> 
87                            ${categoryName} 
88                        </option> 
89                    </#list> 
90                    <#else> 
91                        <option value="">${nonAvailableCategories}</option> 
92                </#if> 
93            </select> 
94        </div> 
95    </div> 
96    <!-- Mostrar las entradas --> 
97    <#assign entriesSize=entries?size /> 
98    <div class="wrapper medium"> 
99        <h3 class="title-form-enlace" id="title-form-enlace"></h3> 
100        <ul id="entries-list"> 
101            <#list entries as curEntry> 
102                <#assign assetRenderer=curEntry.getAssetRenderer() /> 
103                <#assign assetObject=assetRenderer.getAssetObject() /> 
104                <#assign categories=curEntry.getCategories()![] /> 
105                <#assign entryCategoryNames=[] /> 
106                <#list categories as category> 
107                    <#assign entryCategoryNames=entryCategoryNames + [category.getName()] /> 
108                </#list> 
109                <#assign conditionalStyle="display:block;" /> 
110                <#if (curEntry?counter>= 5)> 
111                    <#assign conditionalStyle="display:none;" /> 
112                </#if> 
113                <li class="my-4 entry" style="display:none" data-categories="${entryCategoryNames?join(',')}"> 
114                    <#if assetObject.getArticleId()??> 
115                        <@liferay_journal["journal-article"] 
116                            articleId=assetObject.getArticleId() 
117                            ddmTemplateKey="161002" 
118                            groupId=assetObject.getGroupId() /> 
119                    </#if> 
120                </li> 
121            </#list> 
122        </ul> 
123        <div class="centered small-padding-bottom loadMoreBtn" style="display:none;"> 
124            <a href="javascript:void(0);" class="button lm-button-white" style="width: 100%">${masEnlaces}</a> 
125        </div> 
126    </div> 
127</#if> 
128<script> 
129document.addEventListener('DOMContentLoaded', function() { 
130    let maxEntriesToShow = 5; 
131    let currentCategory = ''; 
132    const entries = document.querySelectorAll('.entry'); 
133    const loadMoreButton = document.querySelector('.loadMoreBtn'); 
134    const titleElement = document.querySelector('.title-form-enlace'); 
135    const categorySelect = document.getElementById('categorySelect'); 
136 
137    // Función para filtrar y mostrar las entradas según la categoría seleccionada 
138    function filterEntriesByCategory() { 
139        const selectedCategory = categorySelect.value.toLowerCase(); 
140        currentCategory = selectedCategory; 
141        let matchingEntries = []; 
142 
143        // Ocultar todas las entradas inicialmente 
144        entries.forEach(entry => entry.style.display = 'none'); 
145 
146        // Filtrar las entradas que coinciden con la categoría seleccionada 
147        entries.forEach(entry => { 
148            const entryCategories = entry.getAttribute('data-categories').split(','); 
149            if (entryCategories.some(category => category.toLowerCase() === selectedCategory)) { 
150                matchingEntries.push(entry); 
151
152        }); 
153 
154        // Mostrar solo las primeras 5 entradas de la categoría seleccionada 
155        matchingEntries.slice(0, maxEntriesToShow).forEach(entry => entry.style.display = 'block'); 
156 
157        // Actualizar el título con el conteo de entradas visibles 
158        titleElement.innerText = '${enlaces} (' + Math.min(maxEntriesToShow, matchingEntries.length) + ' ${de} ' + matchingEntries.length + ')'; 
159 
160        // Mostrar u ocultar el título 
161        titleElement.style.display = matchingEntries.length > 0 ? 'block' : 'none'; 
162 
163        // Mostrar u ocultar el botón "Ver más" 
164        loadMoreButton.style.display = matchingEntries.length > maxEntriesToShow ? 'block' : 'none'; 
165
166 
167    // Evento para cargar más entradas al hacer clic en "Ver más" 
168    loadMoreButton.addEventListener('click', function() { 
169        const matchingEntries = Array.from(entries).filter(entry => { 
170            const entryCategories = entry.getAttribute('data-categories').split(','); 
171            return entryCategories.some(category => category.toLowerCase() === currentCategory); 
172        }); 
173 
174        // Mostrar las siguientes 5 entradas de la categoría seleccionada 
175        const newEntriesToShow = maxEntriesToShow + 5; 
176        matchingEntries.slice(maxEntriesToShow, newEntriesToShow).forEach(entry => entry.style.display = 'block'); 
177 
178        // Actualizar el conteo 
179        maxEntriesToShow = newEntriesToShow; 
180        titleElement.innerText = '${enlaces} (' + Math.min(maxEntriesToShow, matchingEntries.length) + ' ${de} ' + matchingEntries.length + ')'; 
181 
182        // Ocultar el botón si ya se han mostrado todas las entradas 
183        if (maxEntriesToShow >= matchingEntries.length) { 
184            loadMoreButton.style.display = 'none'; 
185
186    }); 
187 
188    // Inicializar el filtro cuando cambia la selección del select 
189    categorySelect.addEventListener('change', function() { 
190        maxEntriesToShow = 5; 
191        filterEntriesByCategory(); 
192    }); 
193 
194    // Inicializar el filtro al cargar la página 
195    filterEntriesByCategory(); 
196}); 
197</script>