duc-sai képe

Köszönöm, sok sikert kívánok a tábor munkájához!

0
0
Geva képe

az img alt szövegét szerintem az elkészített views-ba kellene kiiratni, ott szeretnéd látni a slideshow-ban ...vagy valamit félreértek? ...nem értem a field-... kezdetű templétet

más kiindulást javaslok, ha a slideshow-ban szeretnéd csak az img alt szövegét látni:

az elkészített views templétje tutira views-... -zal kezdődik(dr7). Hogy melyik ez a templét, amibe aztán majd php kóddal kiiratható a megjelenített kép alt szövege, azt a views-ból lehet megtudni:

- az Advanced keretben találsz egy Theme(vagy Smink): Information részt, amelyből pontosan azonosíthatod a templétedet,
keresd a képhez listázott templéteknél
...és válassz onnét

ha nem tudod így megoldani, akkor a felhasználónak kell adni egy szöveges mezőt, ahova a tartalom beküldésekor közvetlenül beírhatja a kép alatt megjelenítendő szöveget. Ezzel a megoldással már csak hozzá kell adnod ezt a szöveges mezőt a views-odhoz, aztán némi css... voálá :-)
(egyéb helyeken pedig le kell tiltani ennek a mezőnek a megjelenését, hogy ne kavarjon be a már korábban kialakított megjelenítésekbe)

2
0
Voluman képe

Nem kell új böngészőt telepíteni, elég ha átállítod a nyelvet. Operában pédául a beállításoknál az első oldal alján. Explorerben az Internetbeállításoknál az általános fülön van egy nyelvek gomb. Firefoxban a beállítások tartalom fülén.

2
0
L.Tiny képe

Hálás köszönetem az idiot proof eligazításért, de nekem ez kell:)) Van még mit tanulnom a Drupal használatából.

A ninesixty sminknél a gyökérbe kell rakni a tpl.php fájlokat (mint kiderült). Így sem megy simán, hogy a gyári field.tpl.php-t használom, mert ezt a mezőt (és a képeket) elrejtettem a megjelenés beállításainál, és egy views blokkban csináltam belőle slideshow-t. Most, hogy engedélyeztem a megjelenést, a tartalom alján ott vannak még egyszer a feltöltött képek, és végre ott figyel az alt és a title szöveg minden kép alatt!!!
Hogy miképpen fogok ebből egy ugyan olyan slideshowt csinálni, ugyan oda a jobb felső ficakba, az még rejtély, de a fő problémán túljutottam... a segítségeddel!!! Köszi még egyszer!

Ja, és a field nevét ide jól írtam, a mező létrehozásakor gépeltem el. De már marad így, úgysem tudja meg senki:)))

0
0
leonidasz képe

Bográcsot állványt viszek!

L.Tiny képe

Köszi Éva ezt a remek ötletet!
Remélem Zoli nem haragszik meg, de talán most ez lesz a jobb megoldás nekem. A views template-eket már nézem is. Innen talán már csak egy lépés. Majd leírom, hogy sikerült!

0
0
blackzoli képe

Szia!

Természetesen nem haragszom meg, sőt örülök, hogy egy problémának egy másfajta megoldását is látom. Mindig tanul az ember:)

Éva, írtad, hogy nem érted a field kezdetű tamplatet. Javítsatok ki ha tévedek, de szerintem a kettőnk megoldása ott tér el, hogy ha a views kezdetű templatet használod, akkor a megjelenítés az elkészített nézetre lesz hatással, ha viszont magát a field-et templatezed, akkor ha azt a mezőt nem views al jeleníted meg, akkor is fog látszani az alt és title tag. Nem jól gondolom?

A másik megoldással kapcsolatban is lenne egy kérdésem:

"ha nem tudod így megoldani, akkor a felhasználónak kell adni egy szöveges mezőt, ahova a tartalom beküldésekor közvetlenül beírhatja a kép alatt megjelenítendő szöveget."

Ha az image field-nél engedélyezve van, hogy értékek száma korlátlan, tehát egy multi image field-ről van szó, akkor hogyan lehet megoldani, hogy minden képhez tartozzon egy szöveges mezőbeli érték?

Üdv
Zoli

1
0
Luigi.hu képe

és nagyon jó a cucc, amit elkövettél. :-) Igen durva, hogy mennyi mindent el lehet követni a Drupallal.

Teljesen egyetértek azzal, amit a SEO-ról írtál, igaz ennek kapcsán "két különböző végén nézünk be a csőbe". :-) Én úgy szoktam ezt a "SEO dolgot elkövetni", hogy az ügyfél megálmodja az oldal struktúrát menükkel mondanivalókkal, majd az oldalakhoz rendeljük hozzá a kulcsszavakat: egy oldalhoz 2-3 kulcsszó jöhet, de egy kulcsszó több oldalhoz is kapcsolódik (természetesen egy adott kulcsszóra a linképítés csak egy oldalnál történik).

Ebben az esetben nem lehet kivitelezni azt, hogy egy kulcsszó = egy oldal. Persze a Page manager-rel varázsolni lehet egy szép landing page-t az adott kulcsszóhoz kapcsolódó több téma rövid leírásával.

Köszönöm a válaszodat, "technikailag" tiszta a helyzet, még átgondolom, hogyan lehetne jobbá tenni a SEO részt ezzel a módszerrel.

0
0
Sk8erPeter képe

szantog, kutakodásod nem volt haszontalan, sőt, köszi, ez alapján, meg a korábbiak alapján elkészítettem egy első változatát a modulnak. "Utólagos engedelmeddel" az általad leírt részt is felhasználtam.

Teszt:
"Árvíztűrő tükörfúrógép típus"

ELŐTTE a generált machine name:
_rv_zt_r_t_k_rf_r_g_p_t_pus

content type machine name

UTÁNA (drush pm-enable machine_name_mod) a generált machine name:
arvizturo_tukorfurogep_tipus

content type machine name with removed accents

A működő modul elérhető itt.

Kódja:

machine_name_mod.info

  1. name = Machine Name Modifier
  2. description = Remove accents from generated machine name.
  3. package = Custom modules
  4. version = 1.0
  5. core = 7.x

machine_name_mod.module

  1. <?php
  2. <?php
  3.  
  4. /**
  5.  * @file
  6.  * A module for removing accents from the automatically generated content type machine name.
  7.  *
  8.  * @see http://drupal.hu/forum/programok-által-használt-név/15726
  9.  * @see http://drupal.hu/comment/64353#comment-64353
  10.  *
  11.  * @author Sk8erPeter
  12.  */
  13.  
  14. /**
  15.  * Implements hook_element_info_alter();
  16.  *
  17.  * Alter the element type information returned from modules.
  18.  * A module may implement this hook in order to alter the element type defaults defined by a module.
  19.  *
  20.  * @see http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_element_info_alter/7
  21.  */
  22. function machine_name_mod_element_info_alter(&$type) {
  23. foreach ($type['machine_name']['#process'] as $key => $process) {
  24. // Eltakaritjuk az eredeti form_machine_name processt, a sajatunkat fogjuk hasznalni
  25. if ($process == 'form_process_machine_name') {
  26. $type['machine_name']['#process'][$key] = 'machine_name_mod_process_machine_name';
  27. }
  28. }
  29. }
  30.  
  31. /**
  32.  * A custom machine_name element process function to change transliteration method js.
  33.  */
  34. function machine_name_mod_process_machine_name($element, &$form_state) {
  35. // Eloszor athajtjuk az eredeti form processen, nem kinyirni akartuk az eredeti process-t, csak belebabralni.
  36. $element = form_process_machine_name($element, $form_state);
  37.  
  38. foreach ($element['#attached']['js'] as $key => $js) {
  39. if ($js == 'misc/machine-name.js') {
  40. $element['#attached']['js'][$key] = drupal_get_path('module', 'machine_name_mod') . '/js/machine-name.js';
  41. }
  42. }
  43.  
  44. return $element;
  45. }

js/machine-name.js

  1. // Modified by Sk8erPeter
  2.  
  3. (function ($) {
  4.  
  5. /**
  6.   * Attach the machine-readable name form element behavior.
  7.   */
  8. Drupal.behaviors.machineName = {
  9. /**
  10.   * Attaches the behavior.
  11.   *
  12.   * @param settings.machineName
  13.   * A list of elements to process, keyed by the HTML ID of the form element
  14.   * containing the human-readable value. Each element is an object defining
  15.   * the following properties:
  16.   * - target: The HTML ID of the machine name form element.
  17.   * - suffix: The HTML ID of a container to show the machine name preview in
  18.   * (usually a field suffix after the human-readable name form element).
  19.   * - label: The label to show for the machine name preview.
  20.   * - replace_pattern: A regular expression (without modifiers) matching
  21.   * disallowed characters in the machine name; e.g., '[^a-z0-9]+'.
  22.   * - replace: A character to replace disallowed characters with; e.g., '_'
  23.   * or '-'.
  24.   */
  25. attach: function (context, settings) {
  26. var self = this;
  27. $.each(settings.machineName, function (source_id, options) {
  28. var $source = $(source_id, context).addClass('machine-name-source');
  29. var $target = $(options.target, context).addClass('machine-name-target');
  30. var $suffix = $(options.suffix, context);
  31. var $wrapper = $target.parents('.form-item:first');
  32. // All elements have to exist.
  33. if (!$source.length || !$target.length || !$suffix.length || !$wrapper.length) {
  34. return;
  35. }
  36. // Skip processing upon a form validation error on the machine name.
  37. if ($target.hasClass('error')) {
  38. return;
  39. }
  40. // Figure out the maximum length for the machine name.
  41. options.maxlength = $target.attr('maxlength');
  42. // Hide the form item container of the machine name form element.
  43. $wrapper.hide();
  44. // Determine the initial machine name value. Unless the machine name form
  45. // element is disabled or not empty, the initial default value is based on
  46. // the human-readable form element value.
  47. if ($target.is(':disabled') || $target.val() != '') {
  48. var machine = $target.val();
  49. }
  50. else {
  51. var machine = self.transliterate($source.val(), options);
  52. }
  53. // Append the machine name preview to the source field.
  54. var $preview = $('<span class="machine-name-value">' + machine + '</span>');
  55. $suffix.empty()
  56. .append(' ').append('<span class="machine-name-label">' + options.label + ':</span>')
  57. .append(' ').append($preview);
  58.  
  59. // If the machine name cannot be edited, stop further processing.
  60. if ($target.is(':disabled')) {
  61. return;
  62. }
  63.  
  64. // If it is editable, append an edit link.
  65. var $link = $('<span class="admin-link"><a href="#">' + Drupal.t('Edit') + '</a></span>')
  66. .click(function () {
  67. $wrapper.show();
  68. $target.focus();
  69. $suffix.hide();
  70. $source.unbind('.machineName');
  71. return false;
  72. });
  73. $suffix.append(' ').append($link);
  74.  
  75. // Preview the machine name in realtime when the human-readable name
  76. // changes, but only if there is no machine name yet; i.e., only upon
  77. // initial creation, not when editing.
  78. if ($target.val() == '') {
  79. $source.bind('keyup.machineName change.machineName', function () {
  80. machine = self.transliterate($(this).val(), options);
  81. // Set the machine name to the transliterated value.
  82. if (machine != options.replace && machine != '') {
  83. $target.val(machine);
  84. $preview.text(machine);
  85. $suffix.show();
  86. }
  87. else {
  88. $suffix.hide();
  89. $target.val(machine);
  90. $preview.empty();
  91. }
  92. });
  93. // Initialize machine name preview.
  94. $source.keyup();
  95. }
  96. });
  97. },
  98.  
  99. /**
  100.   * Transliterate a human-readable name to a machine name.
  101.   *
  102.   * @param source
  103.   * A string to transliterate.
  104.   * @param settings
  105.   * The machine name settings for the corresponding field, containing:
  106.   * - replace_pattern: A regular expression (without modifiers) matching
  107.   * disallowed characters in the machine name; e.g., '[^a-z0-9]+'.
  108.   * - replace: A character to replace disallowed characters with; e.g., '_'
  109.   * or '-'.
  110.   * - maxlength: The maximum length of the machine name.
  111.   *
  112.   * @return
  113.   * The transliterated source string.
  114.   */
  115. transliterate: function (source, settings) {
  116. var rx = new RegExp(settings.replace_pattern, 'g');
  117. // MOD: we remove the accents
  118. source = this.remove_accents(source);
  119. //
  120. return source.toLowerCase().replace(rx, settings.replace).substr(0, settings.maxlength);
  121. },
  122.  
  123. /**
  124.   * Replace all occurrences of the search string with the replacement string
  125.   *
  126.   * @see http://4rapiddev.com/javascript/javascript-remove-vietnamese-accents/
  127.   */
  128. str_replace: function (search, replace, str){
  129. var ra = replace instanceof Array, sa = str instanceof Array, l = (search = [].concat(search)).length, replace = [].concat(replace), i = (str = [].concat(str)).length;
  130. while(j = 0, i--)
  131. while(str[i] = str[i].split(search[j]).join(ra ? replace[j] || "" : replace[0]), ++j < l);
  132. return sa ? str : str[0];
  133. },
  134.  
  135. /**
  136.   * Remove the accents from a string
  137.   *
  138.   * @see http://drupal.hu/comment/63091#comment-63091
  139.   * @see http://4rapiddev.com/javascript/javascript-remove-vietnamese-accents/
  140.   *
  141.   * @param source
  142.   * A string which we will remove the accents from.
  143.   */
  144. remove_accents: function (source) {
  145. var accents_arr= new Array(
  146. "à","á","ạ","ả","ã","â","ầ","ấ","ậ","ẩ","ẫ","ă",
  147. "ằ","ắ","ặ","ẳ","ẵ","è","é","ẹ","ẻ","ẽ","ê","ề",
  148. "ế","ệ","ể","ễ",
  149. "ì","í","ị","ỉ","ĩ",
  150. "ò","ó","ọ","ỏ","õ","ô","ồ","ố","ộ","ổ","ỗ","ơ",
  151. "ờ","ớ","ợ","ở","ỡ", "ö","ő",
  152. "ù","ú","ụ","ủ","ũ","ư","ừ","ứ","ự","ử","ữ", "ü","ű",
  153. "ỳ","ý","ỵ","ỷ","ỹ",
  154. "đ",
  155. "À","Á","Ạ","Ả","Ã","Â","Ầ","Ấ","Ậ","Ẩ","Ẫ","Ă",
  156. "Ằ","Ắ","Ặ","Ẳ","Ẵ",
  157. "È","É","Ẹ","Ẻ","Ẽ","Ê","Ề","Ế","Ệ","Ể","Ễ",
  158. "Ì","Í","Ị","Ỉ","Ĩ",
  159. "Ò","Ó","Ọ","Ỏ","Õ","Ô","Ồ","Ố","Ộ","Ổ","Ỗ","Ơ",
  160. "Ờ","Ớ","Ợ","Ở","Ỡ", "Ö","Ő",
  161. "Ù","Ú","Ụ","Ủ","Ũ","Ư","Ừ","Ứ","Ự","Ử","Ữ", "Ü","Ű",
  162. "Ỳ","Ý","Ỵ","Ỷ","Ỹ",
  163. "Đ"
  164. ),
  165.  
  166. no_accents_arr= new Array(
  167. "a","a","a","a","a","a","a","a","a","a","a",
  168. "a","a","a","a","a","a",
  169. "e","e","e","e","e","e","e","e","e","e","e",
  170. "i","i","i","i","i",
  171. "o","o","o","o","o","o","o","o","o","o","o","o",
  172. "o","o","o","o","o", "o","o",
  173. "u","u","u","u","u","u","u","u","u","u","u", "u","u",
  174. "y","y","y","y","y",
  175. "d",
  176. "A","A","A","A","A","A","A","A","A","A","A","A",
  177. "A","A","A","A","A",
  178. "E","E","E","E","E","E","E","E","E","E","E",
  179. "I","I","I","I","I",
  180. "O","O","O","O","O","O","O","O","O","O","O","O",
  181. "O","O","O","O","O", "O","O",
  182. "U","U","U","U","U","U","U","U","U","U","U", "U","U",
  183. "Y","Y","Y","Y","Y",
  184. "D"
  185. );
  186.  
  187. return this.str_replace(accents_arr,no_accents_arr,source);
  188. }
  189. };
  190.  
  191. })(jQuery);
2
0
Geva képe

én is így gondolom:
- Zoli, a megoldásod az img minden megjelenésére vonatkozik, míg az enyém csupán a views-ban láttatja az img alt szövegét :-)
(az alt szöveget kell megjeleníteni a views_slideshow-val elkészített vetítésben --> az én olvasatom szerint. Kérdés: mit szeretne a kérdező) ...vagyis mindketten a felvetett probléma értelmezése szerint oldottuk meg :-)

Kiss Laci írta: „oldalakra feltöltött képekből áll össze a váltókép” ezt nem többszörös mezőként értelmeztem

- többszörös image field mezőre nyilvánvalóan nem jó megoldás a plussz felirat mező, ennél az esetnél egyértelműen maradna a megfelelő templét kiválasztása, majd php kóddal az alt kijelzése.
A plussz felirat mező - egyszeresen engedélyezett img field mezőnél - jó megoldás lehet olyanoknak, akik nem beszélnek php-ül :-)

szvsz így már kerek a téma,
Zoli, köszönöm a kérdésedet
üdv
Éva

1
0