Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Вывод данных средствами typoscript-а из собственной таблици (http://forum.typo3.ru/showthread.php?t=9975)

semender 23.10.2012 13:20

Цитата:

Сообщение от Андрей Аксенов (Сообщение 34702)
А почитать?

будет ли верно, если я в t3lib\stddb\tables.php
добавлю
PHP код:

$TCA['tx_mytable'] = array(
    
'ctrl' => array(
        
'id' => 'id',
        
'number' => 'number',
        
'date' => 'date',
    )
); 

а в ts это:
Код:

10 = CONTENT
  10 { 
    table = tx_mytable
    select {
    orderBy = sorting
    where = id=0
          }
  }


Андрей Аксенов 23.10.2012 13:26

В файлы ядра системы никогда ничего добавлять не надо!
А таблицу свою легче всего создать, воспользовавшись каким-нибудь кикстартером расширений - то есть, в любом случае, нужно будет создавать свое расширение.

semender 23.10.2012 14:18

о боже, неужели просто нельзя вывести какое нить значение таблицы,создал из pma,заполнил, и показал на странице. оказывается надо писать расширение. наверно легче будет Tesseract поставить и использовать его...

Андрей Аксенов 23.10.2012 14:28

"простые" таблицы считаются сторонними для TYPO3, и это правильно - в целях безопасности, а что касается "просто создать таблицу", так об этом я и говорю, при помощи кикстартера создайте новое расширение с таблицами и берите из этих таблиц что хотите уже через TS.

dmartynenko 23.10.2012 14:44

Цитата:

Сообщение от semender (Сообщение 34717)
о боже, неужели просто нельзя вывести какое нить значение таблицы,создал из pma,заполнил, и показал на странице. оказывается надо писать расширение. наверно легче будет Tesseract поставить и использовать его...

Так ли это просто...

Что будет если вы захотите сделать то же самое на другом хостинге? В другой установке TYPO3?
Будете вспоминать через год-два что вы где-то что-то вручную насоздавали?

А как вы будете наполнять свою таблицу? Тоже руками через PMA ?

Если вы 1 раз сделаете экст, то там будет информация о том как ядру создать таблицу, какие там поля и каких типов. В результате установка таблицы и ее администрирование из проблемы "как сделать все вручную" переходит в удобную админку где многое (если не все) уже сделано и предусмотрено.

Программируйте под TYPO3 используя TYPO3-way. Не изобретайте свои велосипеды там где это не нужно.

semender 23.10.2012 15:07

Цитата:

Сообщение от Андрей Аксенов (Сообщение 34718)
"простые" таблицы считаются сторонними для TYPO3, и это правильно - в целях безопасности, а что касается "просто создать таблицу", так об этом я и говорю, при помощи кикстартера создайте новое расширение с таблицами и берите из этих таблиц что хотите уже через TS.

объясните пожалуйста, а в чём угроза безопасности при использовании своей таблицы в этой же базе?

где в кикстартере есть возможности создать поля тип int(35),tinyint(1), с автоинкрементом, с моими дефолтными параметрами, с CURRENT_TIMESTAMP ?? Не нашел,изменил вручную ext_tables.sql , всё равно не пашет.

Ивано 24.10.2012 01:08

Вот пример из моего ext_tables.sql
Таблица создается один раз как указано ниже.
Возможно Вы не обновили БД (вкладка расширения > доступные расширения > выбор Вашего расширения > обновление БД) после изменения расширения в kickstarter.







-- MySQL dump 10.11
--
-- Host: localhost Database: rskapit8_datebaseallproject
-- ------------------------------------------------------
-- Server version 5.0.92-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `tx_hellow_element_example_list`
--

DROP TABLE IF EXISTS `tx_hellow_element_example_list`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tx_hellow_element_example_list` (
`uid` int(11) NOT NULL auto_increment,
`pid` int(11) NOT NULL default '0',
`tstamp` int(11) NOT NULL default '0',
`crdate` int(11) NOT NULL default '0',
`cruser_id` int(11) NOT NULL default '0',
`deleted` tinyint(4) NOT NULL default '0',
`hidden` tinyint(4) NOT NULL default '0',
`starttime` int(11) unsigned NOT NULL default '0',
`endtime` int(11) unsigned NOT NULL default '0',
`asorting` int(11) unsigned NOT NULL default '0',
`sorting` int(11) unsigned NOT NULL default '0',
`title` tinytext collate utf8_bin,
`service_note` tinytext collate utf8_bin,
`url_location` varchar(255) collate utf8_bin default '0',
`telem` int(11) NOT NULL default '0',
`pelem` int(11) NOT NULL default '0',
`ptable` int(11) NOT NULL default '0',
`structure` int(11) NOT NULL default '0',
PRIMARY KEY (`uid`),
KEY `parent` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2012-10-22 20:14:11


Данный файл ext_tables.sql по хорошему нужен только для одной вещи - если вы заходите в установки typo3 и жмете анализ БД, то typo3 проверят актуальность ваших mysql-таблиц на основе данного файла.
Если что-то лишнее есть в Вашей БД, чего нет в этом файле (к примеру имеется в виду `asorting` int(11) unsigned NOT NULL default '0', ) - то typo3 их удалит из БД - в общем сделает все в точности как в этом файле...:D

Если он (файл) действительно нужен проекту (у Вас это будет постоянное расширение) советую сделать следующим образом: создает TCA, разрабатывает php-скрипты, создаете какую угодно mysql-таблицу (где-то читал, что желательно использовать как можно меньше разновидностей типов полей - ограничится хотябы тремя - int, varcarh, text - в общем по желанию - без всяких float bloob) - одним словом доводите его до совершенства - и после после приступаете к созданию sql-файла так:

делаете выгрузку стуктуры данной таблицы следующей командой

$table = "tt_content_yourext";
$dumpfile = PATH_typo3conf . 'ext/yourext/ext_tables.sql';
exec("mysqldump -h".TYPO3_db_host." -u".TYPO3_db_username." -p".TYPO3_db_password ." --no-data --databases ".TYPO3_db." --tables " .$table. " > $dumpfile");

И получаете готовый файл...:)


Часовой пояс GMT +4, время: 11:21.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot