[CMS] Проект №3


0
Мнения, забелешки относно css 'а вътре?! Защото като гледам ги има повече наброй :)



Отговори



0

css-ите са много, защото чрез тях се изгражда responsive дизайна. Когато браузъра не поддържа скриптове, или потребителя ги е забранил се зареждат необходимите стилове - заградените в noscript елемент. В противен случай, след изпълнението на init.js се разпознава устройството или текущата резолюция и се зареждат съответните стилове. Така поне аз го разбрах :)

Засега поне не мисля да ги пипам и мисля, че не е нужно. 

Друго ме тормози цял ден. Опитах да си направя dynamic sidebar

Това е кода във functions

$sidebarArgs = array(
'name' => 'sidebar-1',
'before_widget' => '<section>',
'after_widget' => '</section>' );
 
register_sidebar($sidebarArgs);
 
Това е sidebar.php
 
      <div class="3u" id="sidebar1">
        <?php if(!dynamic_sidebar('sidebar-1')): ?>
          <section>
            <h2>sidebar 1</h2>
            <ul class="style1">
              <li><a href="#">Maecenas  lectus  sapien</a></li>
              <li><a href="#">Etiam rhoncus volutpat </a></li>
            </ul>
          </section>
          <section>
            <h2>Volutpat</h2>
            <ul class="style1">
              <li><a href="#">Maecenas  lectus  sapien</a></li>
              <li><a href="#">Etiam rhoncus volutpat </a></li>
            </ul>
          </section>
          <?php endif; ?>
        </div>

В крайна сметка резултатът е този

Въпросът ми е как да задам клас на ul елемента, тъй като той има такъв в оригиналния дизайн - class="style1"

Това определено не проработи

$sidebarArgs = array(
'name' => 'sidebar-1',
'class' => 'style1',
'before_widget' => '<section>',
'after_widget' => '</section>' );
 
Опитах се да преработя css-а, да му сменя селектора, но не мисля че това е правилния подход, а и не е един css за преработка :)
 
Изчетох една камара статии, но никъде не пишат за въпросния ul. Само на едно място прочетох, че използването на клас за ul-a, не е widget friendly :D
 
Ако някой е започнал работа по темата нека сподели как е направил dynamic sidebar-a
 

от pdrenovska (2196 точки)


0
Погледнах възможностите на register_sidebar() и май там няма такава възможност. Единият вариант е да добавиш класс с Javascript. Другият, да промениш css.

от krasi.nikolov (1412 точки)

0
Сиреч няма начин без да пипаме css-a? и аз цял ден си блъскам главата с това.

от Ivaylo (696 точки)



0
Наистина има прекалено много CSS файлове. Лично си мисля, че ще е по-добре ако се премахнат част от тях и тяхната функционалност се имплементира, чрез media queries :)
A как всъщност е най-добрия начин да вържем няколко CSS файла към Wordpress тема ? Да ги обединим в 1 или чрез import ? Или има по-добър начин ?

от Teodor92 (13062 точки)


0
По принцип няма особена разлика, но обединени в един файл стават малко трудни за поддръжка.

от NikiOnTime (1139 точки)

0
И аз се поразрових за мултипъл CSS стайлс и се спрях на това:

С отиваш в главната директория на темата (независимо коя е тя :) ), и след това си избираш къде ти са CSS файловете :)
Hope this helps :) Cheers!

от CaptCortez (1242 точки)



0

Дадения ни сайт има hardcoded меню, което не мисля че трябва да се остави в този си вид. Дори и да си регистрираме наше меню, при една fresh инсталация на WordPress потребителя няма да има никакво меню което да му се покаже, така че реших да сложа в хедъра едно динамично меню, което да се визуализира за начало. Пък после потребителя ако реши, може да го модифицира. Менюто ще показва всички създадени страници (не постове), и тъй като инсталацията идва с поне една страница Sample Page - то потребителя ще има какво да види.

За тази цел на мястото на менюто от оригиналния дизайн слагаме:

                <ul>
                  <?php 
                    wp_list_pages('title_li=');
                  ?>
                </ul>
Хубавото в този случай е, че WordPress се грижи вместо нас коя е текущата страница, и слага на съответния li клас current_page_item
 
EDIT: може да се използва и функцията wp_page_menu() - нейното предимство е, че можем да й зададем да показва и линк към homepage в менюто.
                  <?php $args = array(
                    'depth'       => 1,
                    'show_home'   => true);
 
                    wp_page_menu($args);
                  ?>
 

от pdrenovska (2196 точки)


0
Аз използвам 'menu' // тук задавам как се казва менюто и после в wordpress регистрирам това меню и мога да сложа както страници, така и постове и категории да са ми в менюто ) ); ?>

от DenitsaM (65 точки)


0
A може ли да добавяме допълнителен CSS или поне да редактираме текущия ? Т.к. при добавянето на функционалност за коментари без допълнителен CSS седят доста ... дървено.

от Teodor92 (13062 точки)


0
не мисля, че ще се справим без да добавяме стилове. и не са само коментарите, имаме нови страници за резултати от търсенето, архиви, категории... Страницирането как ще се направи без стилове - 1, 2, 3... - ще бъде повече от дървено

от pdrenovska (2196 точки)

0
според мен можем да пипаме някои стилове, все пак нямаме дизайн за коментарите и ще е добре ние да си го доработим. Поне аз лично така ще направя

от kpacu (1114 точки)


0

Дали сте разбрали  какво трябва да предадем в крайна сметка, линк към някакъв hosting, да експортнем темата от някой CMS и да я архивираме или като ни изпитват ще я пускаме локално на компютрите си?

 

Поздрави

 

 


от kpacu (1114 точки)


0
Бих казал, че ще ни трябва локално.

от Teodor92 (13062 точки)

0
eми е в системата какво да качим? Текстов файл с име "Готов съм " :)

от kpacu (1114 точки)



0
Някой опита ли се да направи темата респонзив?

от pepakam (426 точки)


0
какво имаш впредвид под "опита ли се"? стиловете за респонзив дизайна са ни дадени на готово и си работят. След като си ги включа успешно в header.php те си работят без проблем. Няма нужда да правя нищо. Кажи ако мога да помогна с нещо, мисля че до тук темата ми върви добре, мога да я кача някъде за да я разгледаш

от pdrenovska (2196 точки)

0
O, добре, благодаря за отговора. Не видях да работи в index.html (оригиналния файл) - затова. Ще се помъча сама да се справя, ако има нещо което не знам, ще питам отново.

от pepakam (426 точки)



0

По-нагоре има коментар да се използва @import на всички стилове в style.css. На мен поне не ми се стори добра идея и се поразрових и за други мнения по въпроса. Попаднах на интересна статия, в която се описва състезателния ефект при импортването на няколко css-a и как може да навреди на цялото зареждане на страницата

http://www.stevesouders.com/blog/2009/04/09/dont-use-import/


от pdrenovska (2196 точки)


0
PDrenovska, а как мислиш, че ще е по-добре? Аз зная, че с @import не е добре, но поради причината, че в лекцията се каза стиловете да не се добавят с , а с и съображението ми, че не би трябвало да променяме дадената структура (освен може би да добавяме стилове, както се каза за коментарите например), го направих така. Виждала съм в други теми, вярно, че не повече от 1 импортнат файл, но много се чудих как ще е по-правилно в случая и го оставих така...., явно не е най добрия вариант, но не се сещам за друго...


0
аз съм ги добавила така (не твърдя че е най-правилно!): Но използвам функцията, която се препоръчва на http://codex.wordpress.org/Function_Reference/bloginfo
Изтеглих и някои от безплатните теми от http://wordpress.org/themes/ там css-a е включен по следния начин Отново е използвана функция, която се препоръчва от codex-a

от pdrenovska (2196 точки)



1

Сега видях друга особеност на тоя init.js която бях пропуснала. WordPress темата трябва да  има style.css в главната директория. Да, но init.js след като си инициализира всичко, включва стиловете които се намират в директория css/

По този начин, дори и да сложим style.css в главната директория след зареждане на страницата се включва css/style.css.

На някой ако му е интересно може да разгледа как init.js засича коя е директорията. Наистина е интересно :)

x = jQuery('script').filter(function() { return this.src.match(/5grid\/init\.js/); }).first();

Чрез jQuery (за по-кратко на много места ще срещаме този израз заменен със знака $) се взимат всички dom елементи 'script'. С функцията filter() задаваме кои точно намерени обекти да ни върне - отговарящи на поставено условие. Условието е в пропъртито src да се среща стринга 5grid/init.js. И накрая first() ни връща първия елемент отговарящ на условието.

y = x.attr('src').split('?');

Сплитваме по '?' пропъртито src на върнатия елемент и взимаме първия елемент от получения масив. В този момент y[0] съдържа 'css/5grid/init.js'

На нас ни трябва само първата директория, така че останалото го заменяме с празен стринг

_baseURL = y[0].replace(/5grid\/init\.js/, '');

и та-дааа - нашия базов URL е 'css/'

Оттук насетне трябва да укажем в  този скрипт, когато зарежда основния ни стил style.css - да не го търси в тая папка, а в горната. Т.е директорията в която се намира html-a или header.php (когато става въпрос за WordPress)

Единственото, което ми хрумна е в момента в който зареждаме style.css да сменим базовия URL с празен стринг ;)

Потърсих къде в init.js се вмъкват стиловете, и логично ги намерих точно след коментара // Insert stylesheets laugh

Така че 174 ред сдобива нов вид

_headQueue.pushE_5grid(_baseURL.replace(/css\//, '') + _opts['prefix'] + '.css');

До тук не видях да съм счупила нещо, нито при десктоп, нито при мобайл дизайна. Може да пробвате и при вас дали ще се получи.


от pdrenovska (2196 точки)


0
Аз си оправих визуализацията на стиловете, като зададох на някои места в style.css !important. Не знам дали е най-правилния начин, но гледам, че се визуализират правилно. Макар, че ако остане време бих пробвала и твоя начин.

от pepakam (426 точки)


2

Здравейте колеги, попаднах на много хубаво решение за динамичното меню -> ако няма такова все още създадено да изпишем приканващо съобщение да се създаде такова.

Описах го в статия в блога, може да го прегледате и да кажете как ви се струва. Също така дайте мнение дали е разбираемо, защото аз докато го пиша си разбирам, но не знам друг като го чете дали е така smiley

Създаване на динамично меню


от pdrenovska (2196 точки)


0

Този <div class="row" id="footer-content"> как според Вас трябва да се реализира. Аз мисля, че трябва да е пак sidebar, но реших да питам все пак :). И ако е sidebar като какво разглеждате параграфа в него със снимката? Аз засега го направих само като текстов widget, но нещо не ми допада така.


от dessy.tomova (151 точки)